有没有办法知道字符串中有多少int
个值?
例如,用户输入:
"1 2 3 4 5"
我将创建一个int
,array[n]
的数组,其中n
是数组中找到的整数数,然后将1,2,3,4,5存储在数组中。 array
。
有没有一种方法可以逐个存储它们?我知道如果我们在参数中指定sscanf()
的限制,%d
可以返回成功找到和存储的值的数量,但是......如果它是未知的值大小?
答案 0 :(得分:2)
#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;
}