- ベストアンサー
VC++ char[10]へのCString値の代入
CString a = "ABCDEFGHIJ"; char[10] b; bにaを代入したいのですがstrcpyとか含めて色々(キャストしたり・・・) やってみましたがうまくいきません。 C++初心者でCStringの扱いがうまくできないのです(><) どなたかお助けくださいお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>bにaを代入したいのですがstrcpyとか含めて色々(キャストしたり・・・) CString a = "ABCDEFGHJ"; char b[10]; strcpy(b, a.LockBuffer()); a.UnlockBuffer(); とか?
その他の回答 (3)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
No.3 です。 失礼しました。CString には、c_str() はないようです。 あと、No.3 の #include <cstring> はたまたまた綴りが同じだけで、MFC の CString とは別物です。
お礼
もしかして、調べてくださったのですか? どうもありがとうございました(^^)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
CString は使ったことがないのですが、文字列がらみのクラスにはたいていの場合、Cの文字列との互換性のために、c_str() というメンバ関数があるはずです。 #include <cstring> CString a = "ABCDEFGHIJ"; char b[10]; std::strcpy(b, a.c_str()); あと、この場合、ABCDEFGHIJ の最後にくっついている、'\0' までをコピーしようとしますから、b[10] では、良くないことが起こる可能性があります。 (数が足りない)
- pokepotto
- ベストアンサー率31% (21/67)
lstrcpyを使っては? CString a ="ABCDEFGHIJ"; char b[10]; lstrcpy(b,a);
お礼
うごきました(^^)ありがとうございました。
お礼
動きました。#1さんの方法でも動きましたが #2さんの回答を参考にLockBufferとかキーワードを調べて見ました。 大変助かりましたどうもありがとうございました。