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;
}