アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちわ。
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]; では、後々どのような違いが生じてくるでしょうか? つまらない質問ですみません。よろしくおねがいします。

A 回答 (2件)

ヘッダの問題については#1さんが解決済なので、


std::string wordとchar word[10]で後々どのような違いが生じるかについて。

char word[10]は固定長の配列ですので、終端のヌル文字を含めなければ最大9文字までの文字列しか扱えません。
std::string wordではバッファは動的に確保/解放されるので任意の文字列長の文字列を扱えます。

固定長で問題無く、大した文字列操作を必要としないならば前者を使った方がパフォーマンスが良いことが多いでしょう。
そうでなければ、std::stringを使った方が大抵の場合コーディングも保守も楽になります。
    • good
    • 0

ヘッダが違います。


#include <string>
です。
また、名前空間の指定も必要です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!