从键盘任意输入10个数输入一个英文句子,统计该句子中的单词的个数,假设单词以空格分开。

c++编程 从键盘输入一个英文句子,统计其中单词的个数,并输出最_百度知道
c++编程 从键盘输入一个英文句子,统计其中单词的个数,并输出最
1. 从键盘输入一个英文句子,统计其中单词的个数,并输出最长单词在文本中的位置(是文本中的第几个字符)和长度;
我有更好的答案
下面这段程序有问题:int max=wordNo[0]; for(int k=0;k&j;k++) {
if(wordNo[k]&wordNo[0])
max=wordNo[k];
max=wordNo[0]; }改成这样就行: int max=wordNo[0]; int k=0; for(i=0;i&j;i++) {
if(wordNo[i]&max)
max=wordNo[i];
采纳率:44%
为您推荐:
其他类似问题
英文句子的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C++编程 编写函数计算一个英文句子中的单词个数_百度知道
C++编程 编写函数计算一个英文句子中的单词个数
题目内容:编写函数计算一个英文句子中的单词个数。输入格式:一个最长500个字母的英文句子,不包含数字和特殊字符,但可能包含一些英文标点符号。标点符号独立出现时不视为一个单词。输出格式:该句子的单词个数
我有更好的答案
【思路解析】  计算英文句子中的单词个数通常有两种办法:一种是指定固定的分隔符,比如指定空格或者逗号或其它符号为分隔符,除此之外的所有字符都会被认定为单词的有效字符,比如指定空格为分隔符,则I&&love&&her(rose).这个句子中只有3个单词,因为her(rose)之间没有空隔隔开,会被认为是一个单词。另一种是只承认字母为单词的有效字符,除此之外的所有字符都会被认定为分隔符。比如同样是上面的句子,用第二种办法就会统计出4个单词,因为her和rose之间被一个括号隔开,会被认为是两个单词。但是不管是哪一种,其实在编程上思路都是一样的。  统计一个字符串中单词的个数,最关键的问题是如何使有效字符不重复统计。比如碰到love这个单词,检测到l是一个有效字符,单词个数增加1,但紧接着是o也是有效字符,但单词的个数就不能再增加1,否则就会造成重复统计。这可以用一个while语句来实现跳过。整体的思路是这样的:  对字符串中所有的字符一个个检测,直到字符串结束为止,如果碰到有效字符,单词个数增加1,然后用while语句跳过所有有效字符,不断重复这个过程就可以统计出单词的个数。  下面给出两种不同方法的代码,分别写成一个独立的函数,具体如下:【程序代码】#include&&iostream&&&&&&&&&&&&&&//控制台操作头文件#include&&string.h&&&&&&&&&&&&&&//字符串操作头文件&//---------------int&WordCount(char&S[],char&a)&&//统计单词个数函数(a是分隔符){int&i=0,n=0;&&&&&&&&&&&&&&&&&&&//循环变量和单词个数&while(S[i]!='\0')&&&&&&&&&&&&&&//逐个检测串里的字符&&&&&&{if(S[i]!=a&&S[i]!='\0')&&//如果碰到有效字符&&&&&&&&&{n++;&&&&&&&&&&&&&&&&&&//单词个数加1&&&&&&&&&&while(S[i]!=a&&S[i]!='\0')&i++;}//跳过后面一起的有效字符&&&&&&&else&i++;}  &     //如果没碰到有效字符检测下一个return&n;}           //函数返回单词个数/*如果指定了固定分隔符,那就是除了分隔符和结束符其它都是有效字符*///---------------int&WordCount1(char&S[])&&&&&&&&//统计单词个数函数(不指定分隔符){int&i=0,n=0;&&&&&&&&&&&&&&&&&&&//循环变量和单词个数&while(S[i]!='\0')&&&&&&&&&&&&&&//逐个检测串里的字符&&&&&&{if((S[i]&='a'&&S[i]&='z')||(S[i]&='A'&&S[i]&='Z'))&&&&&&&/*只承认a-z或者A-Z之间的字符为单词的有效字符*/&&&&&&&&&{n++;&&&&&&&&&&&&&&&&&&//单词个数加1&&&&&&&&&&while((S[i]&='a'&&S[i]&='z')||(S[i]&='A'&&S[i]&='Z'))&&&&&&&&&&&&&&&&&i++;}     //跳过后面连在一起的所有有效字符&&&&&&&else&i++;}       &//如果没碰到有效字符检测下一个return&n;}&&&&&&&&&&&&&&&&&&&&&&//函数返回单词个数//---------------int&main()&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//主函数{int&n;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//单词数&char&chr[255];&&&&&&&&&&&&&&&&&&&&&&&&&//英文句子字符串&for(;;)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//设置一个无穷循环&&&&{printf(&请输入英文句子(END结束):&);//输入提示&&&&&gets(chr);&&&&&&&&&&&&&&&&&&&&&&&&&//接收一个英文句子&&&&&/*因为句子中可能含有空格,所以要用gets函数不能用scanf函数*/&&&&&if(strcmp(chr,&END&)==0)&&&&&//输入END退出循环结束函数&&&&&&n=WordCount(chr,'&');&&&&&&&&&&&&&&//获得单词数(空格分隔符)&&&&&printf(&以空隔分共有%d个单词\n&,n);//输出单词个数&&&&&n=WordCount1(chr);&&&&&&&&&&&&&&&&&//获得单词数(不指定分隔符)&&&&&printf(&以字母分共有%d个单词\n\n&,n);}//输出单词个数&printf(&\n&);&&&&&&&&&&&&&&&&&&&&&&&&&&//换行&system(&PAUSE&);&&&&&&&&&&&&&&&&&&&&&&&//暂停屏幕查看结果&return&0;}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//结束程序【运行结果】以上代码在DEV&C++上运行通过,截图如下:
采纳率:53%
//#include&&stdafx.h&//vc++6.0加上这一行.#include&&iostream&using&namespace&int&main(void){&&&&int&i,&&&&char&w[501]=&&The&quick&brown&fox&jumps&over&a&lazy&dog.&This&is&a&sentence&in&a&book&called&\'Q\'.&;&&&&for(ws=i=0;w[i];i++)&&&&&&&&if(isalpha(w[i])&&&&(i==0&||&!isalpha(w[i-1])))&&&&&&&&&&&&ws++;&&&&cout&&&&&The&result&is&&&&&&ws&&&&&&&&return&0;}
本回答被网友采纳
为您推荐:
其他类似问题
英文句子的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。输入英文句子统计单词个数c语言_百度知道
输入英文句子统计单词个数c语言
输入一个英文句子,单词间用空格隔开。统计单词个数。在dev cpp软件下用.c格式运行。并注明原理。谢谢
我有更好的答案
#include&&stdio.h&int&main(){& int&i=0,words=0; char&str[256]={0}; gets(str); while&(str[i])&&//循环遍历句子字符串 {
if(str[i]=='&'&||&str[i]=='.'&||&str[i]==','&||&str[i]=='!')
{&//当遇见空格&逗号&句号&感叹号&就计做一个单词
i++; } printf(&Have&[%d]&words\n&,words);}You&are&a&student,she&is&a&girl.Have&[8]&wordsPress&any&key&to&continue
采纳率:45%
来自团队:
#include &stdio.h&main(){
int cnt = 0;
printf(&please enter the sentence\n&);
if(*s==' ') cnt++;
printf(&the sectence have %d word\n&,cnt+1);}
本回答被提问者和网友采纳
1.单词与单词之间是空格:单词后面是空格2.一句话说完之后有标点的话,就不是空格了:所以最后一个单词后面是标点3.每段的开始是不是也有空格的,如果有要记得减去 我想应该是
空格+标点-段落数*(段前空格数)=单词数都忘记怎么编写了不知道对不对,大致我是这么理解的
统计空格的个数再加1应该就是单词个数!
我也知道是统计空格个数。。。可是怎么统计阿?是什么程序?
我只会vc的!行不行!
其他1条回答
为您推荐:
其他类似问题
您可能关注的内容
英文句子的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。扫二维码下载作业帮
3亿+用户的选择
下载作业帮安装包
扫二维码下载作业帮
3亿+用户的选择
C语言统计不同单词个数  编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“one little two little three little boys”,总共有5个不同的单词:one, little, two, three, boys。  说明:(1)由于句子当中包含有空格,所以应该用gets函数来输入这个句子;(2)输入的句子当中只包含英文字符和空格,单词之间用一个空格隔开;(3)不用考虑单词的大小写,假设输入的都是小写字符;(4)句子长度不超过100个字符。  输入格式:输入只有一行,即一个英文句子。  输出格式:输出只有一行,是一个整数,表示句子中不同单词的个数。  输入样例:  one little two little three little boys  输出样例:  5
作业帮用户
扫二维码下载作业帮
3亿+用户的选择
#include&stdio.h&#include&string.h&int is_same(char*str,char*s){ char*p; char str2[100]; int flag=0; strcpy(str2,s);//将内容复制到另一个数组中 p=strtok(str2,& &);//目的是为了避免strtok函数对原来字符串的破坏! while(p!=NULL) {
if(strcmp(p,str)==0)//比较是否相同!
p=strtok(NULL,& &); } if(flag==0)
return 0; else
return 1;}int getcount(char*s){ int i=0,j=0,length=0; char str[20],str1[100];//将前一个单词储存起来,以便与后面的单词比较看是否一样 int word_count=0;//统计单词个数 int k=0;//每个单词的字符数量! while(s[i]) { & &&
if(s[i]!=' ')
if(word_count==0)
word_count++;
& for(k=0;k&i;k++)
& str1[k]=s[k];
& str1[k]='\0';
while((s[j]!=' ')&&(s[j]!='\0'))
str[length]=s[j];
str[length]='\0';
if((word_count!=0)&&(!is_same(str,str1)))
word_count++;
length=0; } return (word_count-1);//减去第一次统计重复的}int main(void){ char str[100]; int count=0; printf(&input a string :&); gets(str); count=getcount(str); printf(&不同单词的数量:%d\n&,count); return 0;}
为您推荐:
扫描下载二维码C语言程序设计,输入一个英文句子,统计单词的个数。_百度知道
C语言程序设计,输入一个英文句子,统计单词的个数。
为什么count的值初始化为0之后,我输入一个英文句子,单词的个数总是少一个?#include&stdio.h&int main(){ char str[256]; int i,count=0;
printf(&Please input an English sentence:\n&); gets(str);
for(i=0;str[i]!='\0';i++)
if(str[i...
我有更好的答案
if(str[i]==' '||str[i]=='\0')这里 你是考虑到 结尾\0也会加一但实际上&当str[i] == '\0'时 循环因为for(i=0;str[i]!='\0';i++)已经退出了所以 这部分不会加一 导致出错可以改成这样。for(i=0;;i++){if(str[i]=='&'||str[i]=='\0')count++;if(str[i]=='\0')&}先判断 累加&再退出
软件工程师
#include&stdio.h&int&main(){ char&str[256]; int&i,count=0; printf(&Please&input&an&English&sentence:\n&); gets(str); for(i=0;str[i]!='\0';i++) {
if(str[i]=='&')
count++; //你这只是算有几个空格字符数 } count+=1; //单词数=空格数+1 printf(&The&number&of&words&are:%d\n&,count); return&0;&&//main()函数是有返回值的}
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 从键盘任意输入10个数 的文章

 

随机推荐