• ベストアンサー

VC++におけるCStringの変換

 VisualC++6.0において、CStringというオブジェクトがありますよね。  たとえば、Edit->GetWindowText(str);  などで、strにEditのさす文字列を入れたりして、そのあとにstrを使って算術演算をするときにどうしてもstrをintかlong型に直したいのです。  キャストの仕方がよくわからないので、知っている方教えてください。よろしくお願いします。

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

LPCSTR で中身をアクセスし、strtol() のような C の関数で処理しましょう。例えば、 CString cstr; long l; l = strtol((LPCSTR)cstr, NULL, 0); この使い方だと、先に紹介されている atol() と同じですが、strtol() では、数字とみなせない 文字列を渡したときに、エラーの起きている位置を知ることができるので、真剣なプログラムには、 atol() よりは、strtol() の方が向いています。

noname#129397
質問者

お礼

ありがとうございます。ちなみに、long型やint型からCString型へ変換はどうやるのでしょうか?教えてくださるとありがたいです。

その他の回答 (2)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.3

> ちなみに、long型やint型からCString型へ変換はどうやるのでしょうか?教えてくださるとありがたいです。 Format() メソッドを使います。 CString cstr; int i; cstr.Format("%d", i); こっちの方は、マニュアルを見れば一発(→参考URL)。

参考URL:
http://www.microsoft.com/JAPAN/developer/library/vcmfc/_mfc_cstring_class_members.htm
  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

atoiや atolでどうでしょう。

関連するQ&A