获取字符串中的整数值数并将其存储在数组中

时间:2014-09-05 01:50:46

标签: c arrays

有没有办法知道字符串中有多少int个值?

例如,用户输入:

"1 2 3 4 5"

我将创建一个intarray[n]的数组,其中n是数组中找到的整数数,然后将1,2,3,4,5存储在数组中。 array

有没有一种方法可以逐个存储它们?我知道如果我们在参数中指定sscanf()的限制,%d可以返回成功找到和存储的值的数量,但是......如果它是未知的值大小?

1 个答案:

答案 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;
}