在C中将字符数组转换为整数数组

Cas*_*ynn 0 c int char atoi

我正在向 C 程序传递一个参数:

程序名称 1234

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

    int     length_of_input = 0;    
    char*   input           = argv[1];


    while(input[length_of_input]) {
        //convert input from array of char to int
        length_of_input++;
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够将传递给函数的参数的每个数字作为整数单独使用。atoi(input[]) 抛出编译时错误。

此代码无法编译:

while(input[length_of_input]) {
    int temp = atoi(input[length_of_input]);
    printf("char %i: %i\n", length_of_input, temp);
    length_of_input++;
}
Run Code Online (Sandbox Code Playgroud)

The*_*eze 5

int i;
for (i = 0; input[i] != 0; i++){
    output[i] = input[i] - '0';
}
Run Code Online (Sandbox Code Playgroud)

  • 您忘记以 null 终止每个字符...您最终会得到一个包含 {1234, 234, 34, 4} 的整数数组。 (5认同)