トップページ > 過去ログ > 記事閲覧
charとstringの使い方の違いについて。
名前:猫八百 日時: 2008/10/09 06:39

%sで出力する場合、stringで下記と同等の動作をさせる場合どうすればいいのでしょうか。 --------------- char* ss[5]={ "A", "B", "C", "D", "E" }; for( int i=0; i<=4; i++ ){ DrawFormatString( 0, 60+i*20 , Color, "%s",ss[i] ) ; } ----------------- std::string ss[5]; ss[0] = "A"; ss[1] = "B"; ss[2] = "C"; ss[3] = "D"; ss[4] = "E"; stringを使って同じ動作をさせるにはどうすればいいのでしょうか。 色々試したのですが、「.または .* の左側に構造体が必要(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )」というエラーがDrawStringFormatの行に出てしまいます。

Page: 1 |

Re: charとstringの使い方の違いについて。 ( No.1 )
名前:猫八百 日時:2008/10/09 06:51

補足です。色々というのは ss[0].c_str()など試してみたのですが、 そもそもこの書き方が違うのではないかと思って (ss.c_str()なら大丈夫なので) 色々調べているのですが、調べきれていません。
Re: charとstringの使い方の違いについて。 ( No.2 )
名前:GPGA 日時:2008/10/09 10:26

char*をstd::stringにすることと DrawFormatString内で.c_str()を付けるだけで、できます。 std::string ss[5]={ "A", "B", "C", "D", "E" }; for( int i=0; i<=4; i++ ){ DrawFormatString(0, 60+i*20 , Color, "%s",ss[i].c_str()) ; }
Re: charとstringの使い方の違いについて。 ( No.3 )
名前:Will 日時:2008/10/09 10:39

以下のようなプログラムで試してみましたが同様の結果になりました。 (環境はBCC) #include <iostream> #include <stdio.h> int main( void ) { char *str[5] = { "A", "B", "C", "D", "E" }; std::string ss[5]; ss[0] = "A"; ss[1] = "B"; ss[2] = "C"; ss[3] = "D"; ss[4] = "E"; printf("char\n"); for (int i = 0; i < 5; i++) { printf("%s\n", str[i]); } printf("string\n"); for (int i = 0; i < 5; i++) { printf("%s\n", ss[i].c_str()); } return (0); } 実行結果 char A B C D E string A B C D E
Re: charとstringの使い方の違いについて。 ( No.4 )
名前:猫八百 日時:2008/10/09 15:06

早速ご返答いただきありがとうございます。 改めて書き直し実行したところエラーなく思ったとおりの結果が出せました。(誤字があったのかもしれません・・・) ありがとうございました!

Page: 1 |