No.17992![]() |
sring型からchar型へ変更できない 投稿者---たて(2004/11/11 18:48:23) |
||
sring型からchar型へ変更できないのですが、、 char* CChild = " "; string ss = "aaa"; sprintf( CChild, "%s", ss ); ::OutputDebugString(CChild); 間違ってますか? |
No.17996![]() |
Re:sring型からchar型へ変更できない 投稿者---nop(2004/11/11 19:14:06) |
||
>char* CChild = " "; >string ss = "aaa"; >sprintf( CChild, "%s", ss ); >::OutputDebugString(CChild); >間違ってますか? 間違ってます。 ・「CChild」に文字列リテラルのポインタを代入しているにも関わらず、 「CChild」の示す内容を更新しようとしている。 ・sprintf()の書式で「%s」を指定しているにも関わらず、 「char *」型の引数を渡していない。 致命的なのは、この二点でしょう。 |
No.17999![]() |
Re:sring型からchar型へ変更できない 投稿者---たて(2004/11/11 19:25:46) |
||
これでよいでしょうか? よくわかりません。 char CChild[256] = " "; string ss = "aaa"; sprintf( CChild, "%s", ss ); |
No.18002![]() |
Re:sring型からchar型へ変更できない 投稿者---nop(2004/11/11 19:47:45) |
||
>これでよいでしょうか? 何故、ご自分で試そうとしないのですか? >よくわかりません。 何がわからないのでしょうか? # 「掲示板ご利用上の注意」はよく読んで、 # 書いてある内容に従って投稿しましょう。 |
No.18003![]() |
Re:sring型からchar型へ変更できない 投稿者---たて(2004/11/11 20:08:20) |
||
さきほどはすみませんでした。 今、自分で試したのですが、 sprintfを実行後にCChildに文字が入ってきません。 char CChild[256]=" "; string ss = "aaa"; sprintf( CChild, "%s", &ss ); sring型からchar型は物理的に変更できないのでしょうか? お答えお願いします |
No.18006![]() |
Re:sring型からchar型へ変更できない 投稿者---RAPT(2004/11/11 20:22:09) |
||
std::stringについて調べてみれば分かることだが。 std::string::c_str()を使えば、const char * を得ることができます。 int main() { char CChild[256] = {0}; std::string ss = "aaa"; sprintf( CChild, "%.255s", ss.c_str() ); puts( CChild ); return 0; } |