• ベストアンサー

数字を文字列に

int i = 10; char *ch; とするとiを文字列としてchに代入し結果が ch[0] = 1 ch[1] = 0 となるようにするにはどう組めば良いのでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.2

こんにちわ。 直接は関係ありませんが、sprintf する前に ch 変数をバッファに割り当てておいて下さいね。 「char *ch;」だけだと、実際に文字列を格納する 領域が無いので・・・。

f_attck
質問者

お礼

御回答ありがとうございます。 レスが遅くなり大変申し訳ありませんでした。

その他の回答 (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

f_attck
質問者

お礼

御回答ありがとうございます。 レスが遅くなり大変申し訳ありませんでした。

noname#4252
noname#4252
回答No.1

sprintf(ch, "%d", i);

f_attck
質問者

お礼

御回答ありがとうございます。 レスが遅くなり大変申し訳ありませんでした。

関連するQ&A