2017-01-08 93 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; 
} 
相關問題