在C中拆分字符串

oss*_*uko 1 c scanf

我有一个包含两个名字和一个逗号的字符串我怎么能把它们分开并将它们写成单独的字符串.

 char *line="John Smith,Jane Smith";    
Run Code Online (Sandbox Code Playgroud)

我正在考虑使用sscanf函数.

 sscanf(line,"%s,%s",str1,str2);    
Run Code Online (Sandbox Code Playgroud)

我该怎么办?
注意:我可以将逗号更改为空格字符.

小智 8

我正在考虑使用sscanf函数.

甚至不要考虑它.

char line[] = "John Smith,Jane Smith";
char *comma = strchr(line, ',');
*comma = 0;
char *firstName = line;
char *secondName = comma + 1;
Run Code Online (Sandbox Code Playgroud)

  • @OssoBuko是的.用`strchr()`搜索逗号的位置,然后用0覆盖它,终止第一个字符串.然后你有第一个字符串.然后,你知道第二个字符串在逗号之后立即开始,所以你抓住一个指向它后面的字符的指针("逗号+ 1"),你去了,你也得到了第二个字符串. (2认同)