前スレ(CStringクラスのMid()の使用方法について)の続きで
申し訳ないのですが・・・。
文字の抜き出しは下記にて行なえました。
CString a( _T( "aabbbcc" ) );
CString b = a.Mid( 3, 3 );
しかし b を別の変数(char *c)などに代入しようとすると
"error C2440: 'argument' : 'class CString' から 'char *' に変換することはできません。"
のエラーとなってしまいます。
環境はVC++5.0です。
いろいろ調べているのですがなかなか解決できずにいます。
何かご教授願います。
追加で。
String型→Char型へのキャストは無理っぽいですね。
実際には
CStringのbを下記のようにURLへセットしたいのですが。
pHeaderInfo->SetHeader(pCtxt->m_pFC, "url", b);
もっと調べてみます。
何か少しでもわかりましたらお願いします。
> pHeaderInfo
って型は何でしょうか?
> String型→Char型へのキャストは無理っぽいですね。
C++では大文字小文字を別のものとして認識します。
なので
char型 と Char型 はまったく別物です。(String型に関しては論外)
先にもスレ書きましたが、char*型がほしい場合は、別バッファを用意してstrpcyしてください。
CString b = a.Mid( 3, 3 );
char* s;
s = new char[ b.GetLength() + 1 ];
strcpy( s, b );
// 使い終わったらdelete[]する
delete[] s;
const char * 型ならたぶん可能。
だからといって、const char * にしたものを無理やりキャストして char * にしないように。
Blueさん、シャノンさん
返信遅れて申し訳ないです。
回答ありがとう御座います。
> CString b = a.Mid( 3, 3 );
> char* s;
> s = new char[ b.GetLength() + 1 ];
> strcpy( s, b );
上記を使用して解決しました。
また何かご協力下さい。
ツイート | ![]() |