【发布时间】:2017-09-10 08:01:17
【问题描述】:
我有多个单词用逗号分隔的字符串
char str[]="K&R,c89,c99,c11";
我正在尝试使用 sscanf() 将前 2 个单词读入单独的字符数组。
sscanf(str, "%[^,] s%[^,]s", str1, str2);
我打算将sscanf() 扫描通过str 直到到达,,将其存储到str1,继续扫描直到另一个, 并存储到str2。
但是值只存储在str1 中,而str2 似乎有垃圾。
如果有任何意义,我尝试删除%[^,]ss 之间的空格,但它对输出没有影响。
我做错了什么?或者这对于多个单词是不可能的?
我听说过用strtok() 做类似的事情,但我想知道sscanf() 是否可以用于此。
【问题讨论】:
-
strtok()具有破坏性,因为它会更改字符串并导致意外行为。因此使用sscanf()会好很多。