char *ch;
string str = "aa";
ch = str;
上のコードのようにstringをchar*にコピりたいのですが、どうすればよいですか
ch = str.c_str()って書くと、char* に const char* はダメとコンパイルエラー
になりまし...
よろしくお願いします。
別領域を用意してコピーしてください。
char s[ 256 ];
strcpy( s, str.c_str() );
また、文字列長が不定であれば、newするとか。
char* s = new char[ s.length() + 1 ];
strcpy( s, str.c_str() );
// 処理
delete [] s;
_strdup関数ってのもある。
char* s = _strdup( str.c_str() );
// 処理
free( s );
類似スレ
http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200604/06040052.txt
> char* s = new char[ s.length() + 1 ];
訂正
char* s = new char[ str.length() + 1 ];
別領域を用意し、コピーするようにしました。
Blueさん、ありがとうございます。
>上のコードのようにstringをchar*にコピりたいのですが、どうすればよいですか
>ch = str.c_str()って書くと、char* に const char* はダメとコンパイルエラー
>になりまし...
それコピーじゃなくて代入ですよ…