• 締切済み

C++ String クラスについて

こんにちわ。 C++のStringクラスについて質問です。 #include <iostream.h> #include <string.h> struct DATA { string word; int *count; }; ↑の様な形でストリング型のwordを定義したいのですが、うまくいきません・・・ 私は Microsoft Visual C++ 6.0 を使っています。 コンパイラによって、上の様な定義ができなかったりするのでしょうか? char word[10]; の様にしたほうがいいのでしょうか? string word; と char word[10]; では、後々どのような違いが生じてくるでしょうか? つまらない質問ですみません。よろしくおねがいします。

みんなの回答

  • junneko
  • ベストアンサー率38% (7/18)
回答No.2

ヘッダの問題については#1さんが解決済なので、 std::string wordとchar word[10]で後々どのような違いが生じるかについて。 char word[10]は固定長の配列ですので、終端のヌル文字を含めなければ最大9文字までの文字列しか扱えません。 std::string wordではバッファは動的に確保/解放されるので任意の文字列長の文字列を扱えます。 固定長で問題無く、大した文字列操作を必要としないならば前者を使った方がパフォーマンスが良いことが多いでしょう。 そうでなければ、std::stringを使った方が大抵の場合コーディングも保守も楽になります。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

ヘッダが違います。 #include <string> です。 また、名前空間の指定も必要です。

関連するQ&A