2017-01-08 19 views
0

私のCプログラムでは、次のような入力があります。 1,2,5,13,​​18 この文字列を実際の数値にするにはどうすればよいですか? 私はstrtok()を試しましたが、それは私にセグメンテーションフォールトを与えました。私はなぜ、おそらくあなたは私を助けてくれるのでしょうか?Cでは、文字列を数値に変換する方法をint配列に変換しますか?

+0

こんにちは!どんな言語でプログラミングしていますか? –

+0

私はansiでCを使用しています90 –

+1

あなたは現在しようとしているコードを共有できますか?私はその場合、 'strtok'と' atoi'があなたの仕事を完了させると思います。 – IanC

答えて

1

ことがあります

#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; 
} 

クレジットは、より多くの情報のためにこれをチェックしてください>>>に行きます適切な方法で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; 
} 
関連する問題