- ベストアンサー
桁をわけたい!
char* str = "456"; int cou[3]; // 文字列を数値に変換 int num = atoi( str ); このnumは456が入っているのですが これをcou配列に cou[0]=6 cou[1]=5 cou[2]=4 という具合に桁数値をわけて受け取りたいのです 皆目見当がつきません C言語はじめて1週間の者でもわかるように どうか、教えていただきたいm< _ _ >m
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
おっと失礼。 #include <stdio.h> #include <stdlib.h> #define N (3) int main(void) { char *str = "456"; int cou[N], num, i; num = atoi(str); for (i = 0; i < N; i++) { cou[i] = num % 10; num /= 10; printf("cou[%d]=%d\n", i, cou[i]); } return 0; }
その他の回答 (2)
- trajaa
- ベストアンサー率22% (2662/11921)
こう言うのって、言語毎のレッスンサイトとか質疑を行うサイトがあるんだが 最近、そっちでなくココで質問する人増えているなぁ 数値の456を、文字配列("4"、"5"、"6")に変換するというごく初歩的なもんだね 基本的な考え方としては、 1.数値をゼロ(無くなる)まで以下の処理を繰り返す 2.数値を10で割った余り(剰余)を求める 3.その余りの数値を数字に変換する 4.変換した数字を配列に格納する <- #2の新しい数値にする 5.10で割った商を元の数値に置き換える 言語がどうのこうのという前の段階では無いのか?
- asuncion
- ベストアンサー率33% (2127/6289)
#include <stdio.h> #include <stdlib.h> #define N (3) int main(void) { char *str = "456"; int cou[N], num, i; num = atoi(str); for (i = 0; i < N; i++) { cou[N - 1 - i] = num % 10; num /= 10; } for (i = 0; i < N; i++) { printf("cou[%d]=%d\n", i, cou[i]); } return 0; }
お礼
おおお、感謝です! ありがとうー