C语言scanf指定字符串分隔符

发布时间 2023-07-20 11:43:44作者: tomhex

1. 示例代码

#include<stdio.h>

int main(int argc, char** argv){
        char str[3][20];
        puts("input a string seprator with \",\"\r\n");
        scanf("%[^,],%[^,],%s",str[0],str[1],str[2]);
        puts(str[0]);
        puts(str[1]);
        puts(str[2]);
        return 0;

}

2. 测试结果:

image

3. 说明

  • [^...] 的解释为: matches the longest non-empty string of input characters not from the setbetween brackets(摘自《The C Programming Language》第二版P204)。例如[^,]代表不包含','的最长匹配串。

  • 而%s 的解释为:string of non-white space characters,即不包含空格,tab的最长匹配串