C/C++ 如何判断一个英文句子中的单词数量
2022-04-24
句子:i am a happy day 2
结果:6
#include<string> #include<iostream> #include <vector> #include<regex> #include<algorithm> using namespace std; int djx(string cbz) { tr1::regex reg("^[0-9a-zA-Z]+");//这里正则可以改一下是否需要数字,可以不要数字的,把0-9删除即可 bool bValid = tr1::regex_match(cbz, reg); ///cout << bValid << endl; if (bValid == 1) { int c = 1; return c; } else if (bValid == 0) { int d = 0; return d; } } //字符串分割函数 vector<string> split(string str, string pattern) { string::size_type pos; vector<string> result; str += pattern;//扩展字符串以方便操作 int size = str.size(); for (int i = 0; i<size; i++) { pos = str.find(pattern, i); if (pos<size) { std::string s = str.substr(i, pos - i); result.push_back(s); i = pos + pattern.size() - 1; } } return result; } int main() { cout << "请输入:"; string str; getline(cin, str); string pattern = " "; vector<string> str_; str_ = split(str, pattern); int result; int ret = 0; for (int i = 0; i < str_.size(); i++) { result = djx(str_[i]); if (result == 1) { ret = ret + 1; } else { ret = ret + 0; } } cout << "存储句子为:" << str << endl; cout <<"当前单词数:" << ret << endl; while (1); }
发表评论: