質問: 標準入力で 1346545343 というように数が与えられ、それらを配列に格納し、各桁の数の合計を求めるために文字列で格納された配列をキャストまたは関数atoiを用いて整数型に変換しようとしたのですができませんでした。 atoi(buf[i])というように各文字列の要素に対して変換するのは不可能なのでしょうか? ``` char buf[SIZE]; fgets(buf, sizeof(buf), stdin); for(i=0; i
回答: > > sum += (int)buf[i]; > > > → `sum += (buf[i] - '0');` (キャスト不要、、 char → int) 手抜き過ぎですが、、。 あと、for() も ~~`for(i = 0; i < strlen(buf); i++)` かも、~~ `for (i = 0; (i < SIZE) && isdigit(buf[i]); i++)` こっちか。 (これでも手抜き。 ctype.h のインクルードが必要) `atoi(buf[i])` atoi() の仕様を確認しましたか? 引数は、文字列です。これに対し、 buf[i] は文字 (char)です。