• ベストアンサー

文字列をint型に変換したいのですが

文字列をint型に変換して、計算に使用したいのですが うまくいきません。 char moji[0] = '1' moji[1] = '2' moji[2] = '3' この文字列をひとつずつint型の変数に代入したいのですが atoi関数を使用した場合、文字列全ての値が変換されてしまいます。 どうしたらいいのでしょうか? お答えいただけるとありがたいです。

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

  • ベストアンサー
  • titokani
  • ベストアンサー率19% (341/1726)
回答No.2

int n0=moji[0]-'0'; int n1=moji[1]-'0'; int n2=moji[2]-'0'; とか。 必要ならisdigitとかを使って文字が数字かどうかの確認を

EAslas
質問者

お礼

とても参考になりました! 回答ありがとうございました。

その他の回答 (3)

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.4

★変な回答があるので注意して下さい。 ・回答者No.1さんの >C/C++は不明にして知らないのですが、ord()などの関数はないんでしょうか?  ord()などの関数はありません。  自作すれば別ですが。 ・回答者No.3さんの >関数ではなく、キャストではだめでしょうか?  これも駄目です。  キャストすると文字コードの値が整数として代入されます。  つまり'1'なら0x31(49)という値で1になりません。 ・回答者No.2さんのように'0'を引けば1桁ずつ数値化できます。

EAslas
質問者

お礼

参考にさせていただきます。 キャストの説明もありがとうございます。 回答ありがとうございました。

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.3

関数ではなく、キャストではだめでしょうか? char moji[4]; moji[0] = '1'; moji[1] = '2' moji[2] = '3' int idat[4]; idat[0] = (int)moji[0]; idat[1] = (int)moji[1]; idat[2] = (int)moji[2];

EAslas
質問者

お礼

キャストのことはあまり分からないので、調べて、 今後参考にさせてもらいます。 回答ありがとうございました。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

C/C++は不明にして知らないのですが、ord()などの関数はないんでしょうか?

EAslas
質問者

お礼

調べてみましたが、よく分かりませんでした。 回答ありがとうございました。

関連するQ&A