”end”という文字が入力されるまで、数値を入力し続けるプログラムを作成したいです。
自分が書いたコードは以下の通りなのです。
文字形式で配列に数字を入力させて、endが入力されれば繰り返し処理終了。
その後数値に変換しようとしているのですが、
違う数値が出力されてきてしまい、解決方法がわかりません。アドバイスいただけないでしょうか。
C
1#include<stdio.h> 2#include<string.h> 3 4int main(void){ 5 char b[100]; 6 int i=0; 7 8 printf("input seisuu\n"); 9 while(1){ 10 scanf("%s",b); 11 if(strcmp(b,"end")==0){ 12 break; 13 } 14 i++; 15 } 16 17 int c[100]; 18 int t; 19 20 for(t=0;t<i-2;t++){ 21 c[t]=b[t]-'0'; 22 } 23 printf("%d\n",c); 24 25 return 0; 26} 27 28
つもり
で済ませず、確認してみましょう。
根本の部分の確認ですが……
例えば,入力が
100
390831
2
end
だとして,入力処理が終わった後で{ "100", "390831", "2" } という3つの文字列を { 100, 390831, 2 }という3つの数値に変換したい,という話なのであれば,
入力された文字列群(この例では{ "100", "390831", "2" } という3つの文字列)をどうにかして記憶しておく必要があるでしょう.
その記憶手段はどうするという話なのでしょうか?
示されたコードからではそのあたりがどのように考えられているのかを読み取ることができません.