• ベストアンサー

VC++ char[10]へのCString値の代入

CString a = "ABCDEFGHIJ"; char[10] b; bにaを代入したいのですがstrcpyとか含めて色々(キャストしたり・・・) やってみましたがうまくいきません。 C++初心者でCStringの扱いがうまくできないのです(><) どなたかお助けくださいお願いします。

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

  • ベストアンサー
  • FAY
  • ベストアンサー率49% (95/193)
回答No.2

>bにaを代入したいのですがstrcpyとか含めて色々(キャストしたり・・・) CString a = "ABCDEFGHJ"; char b[10]; strcpy(b, a.LockBuffer()); a.UnlockBuffer(); とか?

mugi-cha
質問者

お礼

動きました。#1さんの方法でも動きましたが #2さんの回答を参考にLockBufferとかキーワードを調べて見ました。 大変助かりましたどうもありがとうございました。

その他の回答 (3)

回答No.4

No.3 です。 失礼しました。CString には、c_str() はないようです。 あと、No.3 の #include <cstring> はたまたまた綴りが同じだけで、MFC の CString とは別物です。

mugi-cha
質問者

お礼

もしかして、調べてくださったのですか? どうもありがとうございました(^^)

回答No.3

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)
回答No.1

lstrcpyを使っては? CString a ="ABCDEFGHIJ"; char b[10]; lstrcpy(b,a);

mugi-cha
質問者

お礼

うごきました(^^)ありがとうございました。

関連するQ&A

専門家に質問してみよう