首先,我想说明我是一个初学者,这可能是一个愚蠢的问题,而且我可能做错了什么。
我想从一个字符串中读取字符,直到,
找到a并将它们存储在另一个字符串中。我也想知道已经读了多少个字符。这就是我正在做的sscanf
:
sscanf(str, "%[^,]s %n ", newstr, &number);
当我尝试打印数字时0
,即使输入了几个字符,它也会打印,而不管我的输入如何newstr
。
问题似乎在[^,]
子说明符中,而在没有子说明符的%n
情况下应该起作用。
我想从字符串中读取字符,直到找到','并将它们存储在另一个字符串中。我也想知道已经读了多少个字符。
该s
是没有必要的。它不是"%[^,]"
说明符的一部分。尾随也" "
没有任何作用。也应该限制输入长度。newstr
除非代码知道已填满,否则不要使用。
char str[100];
int number = 0;
// sscanf(str, "%[^,]s %n ", newstr, &number);
sscanf(str, "%99[^,], %n", newstr, &number);
if (number) Success();
else Fail(); // do not use newstr
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句