0

我有以下内容:

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

我很难做到,所以从单词 getter 返回的单词使第一个字母大写,如果它是一个专有名词,使用上面的代码它使这个词在我的字典中无法找到,我认为它使这个词大写然后搜索因此我将我正在搜索的单词更改为有一个大写字母,尽管它仍然没有找到它。我的问题是如果我的代码是专有名词,我怎样才能让我的代码大写第一个字母。

4

1 回答 1

1

您可以在第二个单词 getter 中进行大写,仅用于显示。这个 getter 不会修改存储的单词。

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

或者,您可以添加第二个单词 getter 以用于字典搜索。这个 getter 可以返回单词的小写副本。

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