0

私は次のものを持っています:

string ProperNoun::GetWord() {
    word[0] = toupper(word[0]);
    return (word);
}

単語ゲッターから返された単語が最初の文字を大文字にするようにしようとすると問題が発生します。固有名詞の場合、上記のコードを使用すると、辞書で単語が見つかりません。単語が大文字になると仮定しましたそして検索するので、検索している単語を大文字に変更しましたが、まだ見つかりませんでした。私の質問は、固有名詞の場合、コードで最初の文字を大文字にする方法です。

4

1 に答える 1

1

表示のみに使用する 2 番目の単語ゲッターで大文字化を行うことができます。このゲッターは、保存された単語を変更しません。

string ProperNoun::GetWordForDisplay() {
    string s = word;
    s[0] = toupper(s[0]);
    return s;
}

または、辞書検索で使用する 2 つ目の単語ゲッターを追加することもできます。このゲッターは、単語の小文字のコピーを返すことができます。

string ProperNoun::GetWordForSearch() {
    string s = word;
    std::transform(s.begin(), s.end(), s.begin(), ::tolower);
    return s;
}
于 2013-10-16T04:57:51.960 に答える