• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c言語 int型の数字をchar型の配列に)

C言語でint型の数字をchar型の配列に入れる方法は?

このQ&Aのポイント
  • C言語でint型の数字をchar型の配列に入れるためには、数値を文字列に変換する必要があります。これを実現するために、sprintf関数やitoa関数を使用することが一般的です。
  • ただし、sprintfやitoaを使用せずにint型の数字をchar型の配列に入れる方法もあります。具体的な方法としては、int型の数字を10で割りながら、各桁の数値をchar型の配列に格納することです。
  • 以下は、int型の数字をchar型の配列に入れるためのサンプルコードです。 ```c void intToChar(int num, char arr[]){ int i = 0; while(num > 0){ arr[i++] = (num % 10) + '0'; num /= 10; } arr[i] = '\0'; } int main(void){ int x = 5678; char a[5]; intToChar(x, a); // a[0] = '8', a[1] = '7', a[2] = '6', a[3] = '5' return 0; }``` この方法を使用することで、int型の数字を正しくchar型の配列に変換することができます。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.2

>sprintfやitoaを使わずに、数字を文字列に変換することは可能でしょうか? 可能です。10で割ったあまりを順に1の位、10の位、100の位、、、、、としていけば良い。

noname#177863
質問者

お礼

ありがとうございます。 難しく考えすぎていました。 ちゃんと動いたので安心しました。

その他の回答 (2)

  • tsunji
  • ベストアンサー率20% (196/958)
回答No.3

1000の位を求めるには、xを1000で割って'0'を足す 100の位は、xを100で割って10の余剰を求め'0'を足す あと10の位、1の位は同じ様にすれば求まります。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

>しかしこれだと5678という値がそのままchar型の一つの配列に入る?ため正しくないです。 正しくないのはあってますがchar型の0番目の要素として入るなんて事はありません。 とりあえあず引数の型がchar []の関数にint型の値を渡すことはどうやってもできませんので、渡す前に変換するか、関数の引数をint型にして関数内部でchar []に変換するかになります。

noname#177863
質問者

補足

sprintfやitoaを使わずに、 数字を文字列に変換することは可能でしょうか?

関連するQ&A

専門家に質問してみよう