プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (4件)

>bにaを代入したいのですがstrcpyとか含めて色々(キャストしたり・・・)



CString a = "ABCDEFGHJ";
char b[10];
strcpy(b, a.LockBuffer());
a.UnlockBuffer();
とか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/05/24 09:22

No.3 です。


失礼しました。CString には、c_str() はないようです。

あと、No.3 の
#include <cstring>
はたまたまた綴りが同じだけで、MFC の CString とは別物です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/05/24 09:24

CString は使ったことがないのですが、文字列がらみのクラスにはたいていの場合、Cの文字列との互換性のために、c_str() というメンバ関数があるはずです。



#include <cstring>

CString a = "ABCDEFGHIJ";
char b[10];
std::strcpy(b, a.c_str());

あと、この場合、ABCDEFGHIJ の最後にくっついている、'\0' までをコピーしようとしますから、b[10] では、良くないことが起こる可能性があります。
(数が足りない)
    • good
    • 1

lstrcpyを使っては?


CString a ="ABCDEFGHIJ";
char b[10];
lstrcpy(b,a);
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/05/24 09:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!