2017-01-08 116 views
0

在我的C程序中,我得到这样的输入: 1,2,5,13,​​18 我怎样才能把这个字符串转换为实际的数字? 我试过strtok(),但它给了我分段错误,我不知道为什么,也许你可以帮助我一边呢?在C中,如何将包含数字的字符串转换为int数组?

+0

嗨汤姆!你在编程什么语言? –

+0

我使用C with ansi 90 –

+1

您可以分享您目前正在尝试的代码吗?我认为在这种情况下'strtok'和'atoi'可以为你完成这项工作 – IanC

回答

0

我需要看到你的代码,但是这可能足够了:

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

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

int arr[argc]; 
int i; 

for(i = 1; i < argc; i++){ 
    arr[i] = atoi(argv[i]); 
} 

return 0; 
} 

幸得>>>检查了这一点的详细信息:Converting 'integer strings' to integer array

1

你这里没有给出你的代码,可能是您没有正确使用strtok()。请参阅文档,并参阅该页面中的示例以了解更多关于使用strtok()的信息。

使用strtok()来标记字符串,然后atoi()将字符串转换为数字。

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

int main() 
{ 
    char str[] = "1,2,5,13,18"; 
    char* pch; 
    pch = strtok(str, ","); 
    while(pch) 
    { 
     int x = atoi(pch); 
     pch = strtok(NULL, ","); 
     printf("%d\n", x); 
    } 

    return 0; 
} 
相关问题