gpt4 book ai didi

c - 可变长度的字符串到int数组?

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:11 25 4
gpt4 key购买 nike

我有一个字符串,它的形式是“1 2 8 4 9 0”等。我知道它会遵循整数、空格、整数...的格式。

但是,我不能保证长度。我知道最大长度,如果有帮助的话。我想使用 sscanf,但它需要有限数量的整数。

关于如何将“1 2 3”变成数组的任何想法

A[0] = 1

A[1] = 2

A[2] = 3

谢谢!

最佳答案

strtol指示它在字符串中的哪个位置失败。
对于像 "1 2 3 ..." 这样的字符串,它将读取 1 并随后立即失败;如果您随后将该失败点 ("2 3 ...") 传递给 strtol,它将读取 2 并随后立即失败,.. ., ...

#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>

int main(void) {
char input[] = "6 82 -7453 4 0 63 ";
char *err = " ", *curr = input;
int x, k = 0;
while (*curr && isspace((unsigned char)*err)) {
x = strtol(curr, &err, 10);
printf("#%d: %d\n", k++, x);
curr = err + !!*err; // do not advance past the '\0'
}
return 0;
}

See it in action -- 与上面的代码片段不同,ideone 中的代码片段使用 1:/初始化 k,并且不能很好地处理以空格结尾的输入。

关于c - 可变长度的字符串到int数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7840842/

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