将“整数字符串”转换为整数数组

Posted

技术标签:

【中文标题】将“整数字符串”转换为整数数组【英文标题】:Converting 'integer strings' to integer array 【发布时间】:2013-10-20 02:57:43 【问题描述】:

我正在尝试将整数数组传递到我的程序中。有没有更好的方法将其转换为整数?我目前收到一个错误:“可变大小的对象可能未初始化”

for(i = 0; i < argc; i++)

    int arr[i] = atoi(argv[i]);

【问题讨论】:

【参考方案1】:

假设argcargv 是传递给main 的参数,那么argv[0] 不太可能是您想要转换为整数的东西。 argv[0] 通常包含程序的名称。

您的代码 sn-p 声明了循环体的本地数组。您可能想要的是在循环体外部定义的数组,并且您希望分配给循环体中的各个数组元素。

int arr[argc];
for(i = 1; i < argc; i++)

    arr[i] = atoi(argv[i]);

【讨论】:

我忘记了第一个参数是程序的名称。解决了!谢谢!【参考方案2】:

每次循环时都在声明数组arr

像这样改变你的循环:

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

int main(int argc, char *argv[])


    int arr[argc];
    int i=0;


    for(i = 0; i < argc-1; i++)
    
       arr[i] = atoi(argv[i+1]);
       printf("arr[%d] = %d\n",i,arr[i]);
    

    return 0;

这是输出:

Sukhvir@Sukhvir-PC ~
$ gcc -Werror -Wall -g -o test test.c

Sukhvir@Sukhvir-PC ~
$ ./test 3 4 5
arr[0] = 3
arr[1] = 4
arr[2] = 5

【讨论】:

以上是关于将“整数字符串”转换为整数数组的主要内容,如果未能解决你的问题,请参考以下文章

将 list<int> 转换为连接的整数字符串?

C语言中怎么将一个整数字符串转换为一个数

如何对整数字符串数组求和?

将整数字符串转换为整数的2D向量

有没有办法在将字符串转换为整数后保持字符串中数字的第一个零?

技巧总结java整数,字符串,数组之间的相互转换