2013-10-16 59 views
0

我有以下几点:怎样的第一个字母返回一个字大写

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

我有麻烦试图使从字getter返回的一句话让人第一个字母大写,使它,如果它是一个合适的名词,它使用上面的代码,它使我的字典中的单词不可见,我假定它使单词大写,然后搜索,因此我改变了我正在搜索的一个大写字母,尽管它仍然没有找到它。我的问题是如何使我的代码大写第一个字母,如果它是一个专有名词。

+1

你的磨合句是难以理解的。另一种方式。 – Adam

+0

您是否知道*局部变量*的概念? –

+0

第二个亚当。更重要的可能是这个问题;如果你知道它是一个专有名词,为什么不把它用于大写,如果它不是当你制作对象时,而不是每次遍历字典时都做它呢? – ChiefTwoPencils

回答

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; 
} 
相关问题