谁能解释一下为什么在下面的代码中没有拆分字符串
#include <stdio.h>
int main(void)
{
char name[] = "first:last";
char first[20], last[20];
sscanf(name, "%s:%s", first, last);
printf("first: %s, last: %s", first, last);
return 0;
}
输出是
first: first:last, last:
但应该是
first: first, last: last
请在此处检查代码 http://ideone.com/JDSTt
最佳答案
你可以这样使用:
sscanf(name, "%[^:]:%s", first, last);
:
不是空格,因此常规 %s
不会将其视为分隔符。参见 scanf
了解更多详情。
(编辑演示:http://ideone.com/m4LVP)
关于c - sscanf 字符串拆分不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8642500/