string → char*への変換について

解決


MILD  2006-04-28 09:30:53  No: 61487  IP: 192.*.*.*

char *ch;
string str = "aa";

ch = str;

上のコードのようにstringをchar*にコピりたいのですが、どうすればよいですか
ch = str.c_str()って書くと、char* に const char* はダメとコンパイルエラー
になりまし...
よろしくお願いします。

編集 削除
Blue  2006-04-28 09:45:41  No: 61488  IP: 192.*.*.*

別領域を用意してコピーしてください。

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

編集 削除
Blue  2006-04-28 09:46:22  No: 61489  IP: 192.*.*.*

> char* s = new char[ s.length() + 1 ];
訂正
char* s = new char[ str.length() + 1 ];

編集 削除
MILD  2006-04-28 11:31:47  No: 61490  IP: 192.*.*.*

別領域を用意し、コピーするようにしました。
Blueさん、ありがとうございます。

編集 削除
んー  2006-04-28 12:34:01  No: 61491  IP: 192.*.*.*

>上のコードのようにstringをchar*にコピりたいのですが、どうすればよいですか
>ch = str.c_str()って書くと、char* に const char* はダメとコンパイルエラー
>になりまし...
それコピーじゃなくて代入ですよ…

編集 削除