0
我想計算字符串s
中有多少個區分大小寫的字。到目前爲止,我已經將標點轉換爲空格,並將每個單獨的詞(由空格分隔)添加到一個集合中。由於set
僅包含唯一元素,因此以下函數返回1
。但是,由於字符串s
有2個區分大小寫的字(ab
和AB
),所以它應該返回2。使用C++對字符串中的區分大小寫的字進行計數
如何檢查字符串s中單詞的區分大小寫?
bool isWordSeparator(char c) {
return std::isspace(c) || std::ispunct(c);
}
int main() {
string s = "ab\nAB!ab?AB:ab.AB;ab\nAB";
transform(s.begin(), s.end(), s.begin(), [](char c)->char {
if (isWordSeparator(c))
return ' ';
});
istringstream iss(s);
set<string> words((istream_iterator<string>(iss)), istream_iterator<string>());
cout << "Number of Words: " << words.size() << endl;
return 0;
}