前提・実現したいこと
char型の配列の一部の数字(文字列)を、数値として取り出すには、どうしたらいいですか?
追記:
まずfgetsで一行目でnを入力します。
そして、2行目に1から10までの数字の文字列が入力させます。
例
5
9 3 2 1 10
抜けていて申し訳ないです。
該当のソースコード
C
1char str[1000]; 2fgets(str, sizeof(str), stdin); 3char **words = malloc(sizeof(char*)*n); 4 5words[0] = strtok(str, " "); 6 7for (int i = 1; i < n; i++) 8{ 9 words[i] = strtok(NULL, " "); 10} 11for (int i = 0; i < n; i++) 12{ 13 int n = atoi(word[i]); //このような配列の途中を数値にしたいです。 14 printf("%d\n", n); 15} 16
試したこと
atoiを使うと、文字列すべてが変換されてしまうので、配列の途中を変換できない
fgets で読み込む文字列の例を具体的に挙げてください。
malloc や for文の n はどうやって決まるのですか?
まずfgetsで一行目でnを入力します。
そして、2行目に1から10までの数字の文字列が入力させます。
例
5
9 3 2 1 10
抜けていて申し訳ないです。
練習問題とするなら、入力に複数の数字が含まれるのをやったほうが、勉強になりそう。
例えば "here is a liquid whose weight is 10kg and volume is 700ml"とかは解析できるかな。
今回は、全て数字なので、ベストアンサーで大丈夫なのですが、ppaulさんの文章にも対応できるように考えてみます!
ありがとうございます。
回答4件
あなたの回答
tips
プレビュー