c++编程,求大神!建立一个WORD类,统计一个英文字符串中的英文单词个数及在字符串中查找指定子串。

建立一个WORD类,统计一个英文字符串中的英文单词个数及在字符串中查找指定子串。字符串中的各英文单词以一个或多个空格分隔。如字符串“Iamastudent”中英文单词个数... 建立一个WORD类,统计一个英文字符串中的英文单词个数及在字符串中查找指定子串。字符串中的各英文单词以一个或多个空格分隔。如字符串“I am a student”中英文单词个数为4.
具体要求如下:
(1)私有数据成员:
char str[80] 存放字符串
int c 存放字符串str中的英文单词的个数
(2)公有成员函数:(以下为必须提供的,除此外的辅助函数自行设计)
WORD(char *s) 构造函数,用参数s初始化str,同时初始化单词个数c为0
void process() 统计字符串中的英文单词个数
int issub(char *s) 在字符串str中查找s串,若找到,返回指定串的首字符的位置,若没有,则返回-1
WORD operator-(WORD& s) 在当前对象的字符串str中删除s对象中的str代表的字符串
void print() 输出字符串及单词个数
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏10(财富值+成长值)
IT冷香小筑
2015-07-09 · 超过15用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:26.2万
展开全部
时间有限,粗略写了几个,看看吧,写的不是那么完全就是了。

class CWord
{
public:
CWord(char *s);

void process();
int issub(char *s);
CWord operator-(CWord& s);
void print();
private:
char str[80];//存放字符串
int count;//英文单词的个数
};

CWord::CWord(char *s)
{
strcpy_s(str, "");
if(s != NULL)
{
strcpy_s(str, s);
}
count = 0;
}

void CWord::print()
{
cout << "字符串为:"<< str;
cout << ",单词个数为:" << count <<endl;
}
void CWord::process()
{
char* temp = str;
temp++;
while(*temp != '\0')
{
if(*temp == 32 && *(--temp) != 32)
{
count++;
}
temp+=2;
}
if(*(--temp) != 32)
{
count++;
}
}

int CWord::issub(char* sub_str)
{
//在字符串str中查找s串,若找到,返回指定串的首字符的位置,若没有,则返回-1
int pos = 0;
char* src_str = str;
while (*src_str != '\0')
{
pos++;
if(*src_str == *sub_str)
{
char* temp1 = src_str;
char* temp2 = sub_str;
while(*temp2 != '\0' && *temp1 != '\0')
{
if(*(temp1++) != *(temp2++))
break;
}
if(*temp2 == '\0')
{
return pos;
}
}
src_str++;
}

return -1;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式