• ベストアンサー

桁をわけたい!

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

質問者が選んだベストアンサー

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.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; }

mangakamezasu
質問者

お礼

おおお、感謝です! ありがとうー

その他の回答 (2)

  • trajaa
  • ベストアンサー率22% (2662/11921)
回答No.2

こう言うのって、言語毎のレッスンサイトとか質疑を行うサイトがあるんだが 最近、そっちでなくココで質問する人増えているなぁ 数値の456を、文字配列("4"、"5"、"6")に変換するというごく初歩的なもんだね 基本的な考え方としては、 1.数値をゼロ(無くなる)まで以下の処理を繰り返す 2.数値を10で割った余り(剰余)を求める 3.その余りの数値を数字に変換する 4.変換した数字を配列に格納する <- #2の新しい数値にする 5.10で割った商を元の数値に置き換える 言語がどうのこうのという前の段階では無いのか?

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

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

関連するQ&A

専門家に質問してみよう