c - 获取字符串中整数值的数量并将它们存储在数组中

标签 c arrays

有没有办法获取字符串中有多少个 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/

相关文章:

c - C 中使用数组变量的指针运算

c - 保护开源软件可执行文件中的公司数据

Python 通过跳过列表之间的值将值附加到空列表

javascript - 如何将数组上的更改反射(reflect)到 lit-element 中渲染的 html 中?

java - 如何将原始图像转换为带符号的 32 位图像

c - 读取不断增长的文件

c - malloc 双重释放行为

c - 如何解决: "cast to pointer from integer of different size" warning in C code?

php - php中如何获取嵌套数组的值

arrays - 使用Excel VBA在多维数组中查找(而不是删除)重复值(行)