【发布时间】:2011-12-27 08:20:05
【问题描述】:
有人可以解释一下为什么字符串没有在下面的代码中拆分
#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;
}
输出是
第一个:第一个:最后一个,最后一个:
但应该是
第一个:第一个,最后一个:最后一个
请在此处检查代码http://ideone.com/JDSTt
【问题讨论】:
-
如果您测试了来自
sscanf()的返回值,它会告诉您它只进行了一次转换,而不是您预期的两次,这强烈暗示您的期望有问题。始终检查错误...尤其是当您对某事感到困惑时。