- ベストアンサー
※ 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型の配列に変換することができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>sprintfやitoaを使わずに、数字を文字列に変換することは可能でしょうか? 可能です。10で割ったあまりを順に1の位、10の位、100の位、、、、、としていけば良い。
その他の回答 (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 []に変換するかになります。
質問者
補足
sprintfやitoaを使わずに、 数字を文字列に変換することは可能でしょうか?
お礼
ありがとうございます。 難しく考えすぎていました。 ちゃんと動いたので安心しました。