- ベストアンサー
数字を文字列に
int i = 10; char *ch; とするとiを文字列としてchに代入し結果が ch[0] = 1 ch[1] = 0 となるようにするにはどう組めば良いのでしょうか? よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ。 直接は関係ありませんが、sprintf する前に ch 変数をバッファに割り当てておいて下さいね。 「char *ch;」だけだと、実際に文字列を格納する 領域が無いので・・・。
その他の回答 (2)
- onti
- ベストアンサー率37% (9/24)
回答No.3
ch[0]=1、ch[1]=0と書いていますが、intは、ご存知の とおり数値型、charは文字型なので、sprintf()で編集 すると、ch[0]="1"(0x21)、ch[1]="0"(0x20)のコード で入りますが、それでよいのですか? もしも、ch[0]=0x01、ch[1]=0x00といれたいのであれば、 ビットシフト演算で代入すればできますよ。 ch[0] = (i >> 8) & 0x000000ff ch[1] = i & 0x000000ff
質問者
お礼
御回答ありがとうございます。 レスが遅くなり大変申し訳ありませんでした。
noname#4252
回答No.1
sprintf(ch, "%d", i);
質問者
お礼
御回答ありがとうございます。 レスが遅くなり大変申し訳ありませんでした。
お礼
御回答ありがとうございます。 レスが遅くなり大変申し訳ありませんでした。