一段程序,先提示输入一个单词,然后再输入一个句子,在这个句子中统计单词出现的次数。怎么实现。 30

例如:输入:the输入:thelandandthethe在这句话中出现2次用什么方法保存这句话,使用文件?还有,怎么保证我用读单词并比较。... 例如:输入:the
输入:the land and the
the 在这句话中出现2次
用什么方法保存这句话,使用文件?还有,怎么保证我用读单词并比较。
展开
 我来答
单色调的张扬
推荐于2018-04-11 · 超过12用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:29.3万
展开全部
// 查找字符串在另一个字符窜的位置
// 输入:sStr--查找字符串,dStr--目的字符串
// 返回值:查找字符串在目的字符窜的个数
int SearchStr(char* sStr,char* dStr)
{
int count = 0;
// 暂存字符串
char*tmpChar = new char[_MAX_PATH];
if (NULL == sStr || NULL == dStr)
{
// 没有要搜索的字符串
return -1;
}
if (0 == strlen(sStr)||0==strlen(dStr))
{
return -2;
}
tmpChar = dStr;
while(NULL != tmpChar)
{
tmpChar = strstr(tmpChar,sStr);
if (NULL != tmpChar)
{
// 次数加一
count++;
// 将找到的字符串提出
tmpChar = &tmpChar[strlen(sStr)];
}
}
return count;
}

int _tmain(int argc, _TCHAR* argv[])
{
char *findWords;
char *sentences;
char flag;
int cout;
printf("是否进入测试?y/n\n");
scanf("%c",&flag);
// 解决回车键的问题。可以讲输入缓冲区清除
fflush(stdin);
while('n'!=flag)
{
findWords= new char[_MAX_PATH];
sentences = new char[_MAX_PATH];
printf("请输入要查找的字符串%s\n");
scanf("%s",findWords);
fflush(stdin);
printf("请输入包含该字符串的句子%s\n");
//scanf("%s",sentences);
// 将带有空格的语句放入
// 输入最多259个字符遇到回车结束
// %[]将所有字符串包括空格都记录缓冲区
scanf("%259[^\n]", sentences);
fflush(stdin);
// 这里用一个简单的分割字符串模式,类似split
// 初始化wordCount,单词个数
cout =0;
// 得到第一个字符串中是否含有要查找的单词
cout=SearchStr(findWords,sentences);
//cout = SearchStr(findWords,sentences);
if (cout<=0)
{
printf("输入有误\n");
}
else
{
printf("%s在这句中出现的次数为%d\n",findWords,cout);
}
flag ='\0';
printf("是否还要继续?y/n\n");
scanf("%c",&flag);
fflush(stdin);
delete findWords;
delete sentences;
}
return 0;
}

好久没写过了,这是一个简单的程序,如果想保存的话,读写文件就可以了,将每个printf都写到一个文件就可以了,单词比较的话,因为有空格,所以你输入的就是一个单词啊,只要找到上边所需要查找的字符串就行。
百度网友cf3018a
2012-12-17
知道答主
回答量:27
采纳率:0%
帮助的人:9.1万
展开全部
用查找的方法就行了,然后输出这句话
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式