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

解決


MILD  2006-04-28 18:30:53  No: 61487

char *ch;
string str = "aa";

ch = str;

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


Blue  2006-04-28 18:45:41  No: 61488

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

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 18:46:22  No: 61489

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


MILD  2006-04-28 20:31:47  No: 61490

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


んー  2006-04-28 21:34:01  No: 61491

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加