c++怎么实现在一句话中统计某个单词出现的次数。

例如;输入单词:the
输入句子:the land and the family
输出:the出现2次。
句子输入可以用gets函数,但用什么保存这句话,使用文件还是?定义变量使用字符数组还是string?如果用文件来保存输入的这句话怎么从文件当中每次制度一个单词?

第1个回答  2012-12-17
楼上有错误,如果查找and的话会有两个结果,land里面的and也会算进去

#include <stdlib.h>
#include <stdio.h>
int chazhao(char *str1,char *str2)
{
char *p=str1;//p指向句子
int i=0,k=0;//k统计个数
while(*p!='\0')//句子结束退出循环
{
while(*p!=' ')//单词结束退出循环 查找下个单词
{
if(*p!=str2[i])//遇到不同字母 指向下一个单词
while(*p!=' ') p++;
else//字母相同
{
if(*(p+1)==' ')//单词结束 计数加一
{
k++;
p++;
}
else//比较下一个字母
{
i++;
p++;
}
}
}
p++;
i=0;
}
return k;
}

void main()
{
char word[100],juzi[100];
printf("输入要句子:\n");
gets(juzi);
printf("输入要查找的单词:\n");
gets(word);
printf("单词的个数:%d",chazhao(juzi,word));
}

如果用文件的话用fget(str,n,fp);
函数的功能就是把fp所指文件里的n个字符放到字符串str里面,如果遇到'\0'退出函数本回答被提问者采纳

c++怎么实现在一句话中统计某个单词出现的次数。
int i=0,k=0;\/\/k统计个数 while(*p!='\\0')\/\/句子结束退出循环 { while(*p!=' ')\/\/单词结束退出循环 查找下个单词 { if(*p!=str2[i])\/\/遇到不同字母 指向下一个单词 while(*p!=' ') p++;else\/\/字母相同 { if(*(p+1)==' ')\/\/单词结束 计数加一 { k++;p++;} else\/\/...

求解c++ 输入一句话,求单词的长度和出现次数
if(sum[i]!=0)cout<<"单词长度为"<<i<<" "<<"出现次数为"<<sum[i]<<"次"<<endl;} } 要是看不明白就调试在循环语句那设个断点,很容易就明白了

...大体就是计算一句话中各字母出现的次数,并输出一个数组
读取计数清空我就不说了,我相信你能处理 说说画图,这里是这样的 一次画一条| 那么我们可以这样做,先找到26个字母里面最多的那个 然后 for(i= max; i>0; i--)for(j=0; j<26; j++)if( char_count[j] == i )printf(" |");else printf(" ");大概思路就是这样 ...

c++ 统计字母个数
int i_num=0;while(a[i]!='\\0') \/\/当这一串数组没结束。{ if (a[i]=='i')i_num++ \/\/对字符串进行遍历,如果发现某个字母是i,那么i_num自加。i_num中的数就是字符串中i出现的个数。} cout<<"i_num="<<i_num<<endl;如果你要输入其他的数据,可以先定义一个字符数组存放。

C语言:输入一句话(英语),这个话每个字母出现的次数,(包括数字和标点...
int main(){ char str1[100];char str2[26];int a[26]={0},b[10]={0},c=0,b1[10];gets(str1);int i,j,k,t;for(i=0;i<10;i++)b1[i]=i;for(i=0;i<26;i++)str2[i]=65+i;for(j=0;str1[j]!='\\0';j++){ t=0;for(i=0;i<26;i++){ if((str1[j...

C语言:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开_百度...
include<bits\/stdc++.h> usingnamespacestd;intmain(){ chara;ints=1;scanf("%c",&a);while(a!='.'){ if(a==''||a==',')s++;scanf("%c",&a);} cout<

...大体就是计算一句话中各字母出现的次数,并输出一个数组
printf("R : 读取一句话。\\n");printf("p : 输出各个字母出现次数。\\n");printf("Q : 退出程序。\\n\\n");printf("输入命令: C、R、P 或 Q : ");fflush(stdin);an = getchar();switch(an) { case 'c' :case 'C' : for(i = 0; i < 26; ++i) histo[i] = 0; break;...

c++文章生成器 根据用户的启动词,根据语料库中统计出的词语前后缀关系...
可以用两种方法做,一个是把数据读入到数组,然后根据起动词,遍历前后关系,组成文章,一个是用链表做,遍历插入。int main(){ char *stra="如何把一句话分解成单词存放到字符串数组中?";int len=strlen(stra);char strb[len\/2][2];printf("%d",len);for(int i=0;i<len;i+=2){ strb...

c++中怎么在一句话的中间插入换行符
如果是输出 加\\r\\n 如果是字符语句没写完成 后加 \\ 表示下行与这是一条 语句直接回车就成了.

C++中如何换行输入
需要准备的工具:C++,电脑。1、首先,定义一个常量,控制存储一句话的最多字符数。2、定义一个字符串数组,保存输入的字符。3、定义两个整型变量m和n,设置m的初始值为-1。4、用do-while循环,控制输入一句话中的所有字符,判断条件为换行符。5、用m累加1的方式,控制数组的下标,实现统计数组元素...

相似回答