首页 C/C++修行正文

C/C++ 如何判断一个英文句子中的单词数量

欲儿 C/C++修行 2022-04-24 244 0

句子: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);
}


版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论