有没有办法获取字符串中有多少个 int
值?
例如,用户输入:
"1 2 3 4 5"
我将创建一个 int
数组,array[n]
,其中 n
是在数组中找到的整数个数,然后将 1、2、3、4、5 存储在 array
中。
有没有一种方法可以将它们一个一个地存储起来?我知道如果我们在参数中分配 %d
的限制,sscanf()
可以返回成功找到和存储的值的数量,但是......如果它的大小未知值(value)观?
最佳答案
#include <stdio.h>
int main(){
char *input = "1 2 3 4 5";
int len = 0, n = 0;
char *p = input;
while(sscanf(p, "%*d%n", &len)==0){
++n;
p += len;
}
int i,array[n];
for(i=0, p=input;i<n;++i, p += len){
sscanf(p, "%d%n", &array[i], &len);
printf("%d\n", array[i]);
}
return 0;
}
关于c - 获取字符串中整数值的数量并将它们存储在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25677568/