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);
}
发表评论: