gpt4 book ai didi

c - 使用 sscanf 迭代地解析字符串输入

转载 作者:行者123 更新时间:2023-12-02 07:35:46 25 4
gpt4 key购买 nike

我有一个由空格分隔的数字组成的输入字符串,例如“12 23 34”。
输出应该是一个整数数组。

我尝试了以下方法:

while (sscanf(s, "%d", &d) == 1) {
arr[n++] = d;
}

但我发现,由于我不是从文件中读取(自动调整偏移量),
我每次都在 d 中存储相同的数字。

然后我试了一下:

while (sscanf(s, "%d", &d) == 1) {
arr[n++] = d;
s = strchr(s, ' ');
}

手动将 s 移动到新号码。
我认为应该可以正常工作。我只是不明白为什么它会失败。

最佳答案

scanf 提供了一个优雅的答案:%n 转换,它告诉您到目前为止已经消耗了多少字节。

像这样使用它:

int pos;
while (sscanf(s, "%d%n", &d, &pos) == 1) {
arr[n++] = d;
s += pos;
}

关于c - 使用 sscanf 迭代地解析字符串输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16801851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com