我想读取存储在字符串中的以空格分隔的数字列表。
我知道如何使用 C++ 中的 stringstream
完成此操作 -:
string s = "10 22 45 67 89";
stringstream ss(s);
int numbers[100];
int k=0, next_number;
while(ss>>next_number)
numbers[k++]=next_number;
我的问题是我们如何在 C 中做到这一点?
我在 C 中阅读了有关 sscanf()
的内容,但我不确定它在这里是否有用。
最佳答案
使用 sscanf()
和 "%n
知道从哪里开始下一次扫描。
char *s = "10 22 45 67 89";
for (k=0; k<100; k++) {
int n;
int cnt = sscanf(s, "%d %n", numbers[k], &n);
if (cnt != 1) break;
s += n;
}
if (*s) Handle_DidNotEndCleanly();
关于c - 从字符串中读取数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26724086/