1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python输入一个英文句子 统计单词个数_C语言编程求一个英文句子中的单词数和最长单词

python输入一个英文句子 统计单词个数_C语言编程求一个英文句子中的单词数和最长单词

时间:2022-08-28 10:56:05

相关推荐

python输入一个英文句子 统计单词个数_C语言编程求一个英文句子中的单词数和最长单词

C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词。 c++编程 从键盘输入一个英文

时间: -11-23

我刚做了一关于英文句子里面每个单词平均字长的。与你问题很近。

#include "stdio.h"

#include

#include "ctype.h"

#define MAX 1000000

char buf[MAX],s[MAX];

char p[MAX];

int main(){

int n = 0;

int m = 1;

int cout = 0;

float ave = 0;

int i;

fgets(buf,sizeof(s),stdin);

n = strlen(buf)-1;//字符串的末尾有一个结束字符

for( i =0;i < n; i++)

if(isalpha(buf[i]) == 0 && isalpha(buf[i+1])!=0)

{

m ++;

}

printf("%d

",m);

for(i = 0; i < n; i++)

{

if(isalpha(buf[i]) !=0)

cout++;

}

printf("%d

",cout);

ave = cout /m;

printf("%f",ave);

return 0;

}

下面这段程序有问题:

int max=wordNo[0];

for(int k=0;k

{

if(wordNo[k]>wordNo[0])

max=wordNo[k];

else

max=wordNo[0];

}

改成这样就行:

int max=wordNo[0];

int k=0;

for(i=0;i

{

if(wordNo[i]>max)

{

k=i;

max=wordNo[i];

}

}

#include #include #include #include #define SIZE 100void readin(char str[]);//读取输入,一行开头ctr+z,然后回车,结束输入int countWords(char *p);//数单词个数void longest(char str[]);//最长单词开始的字符位置,int main(void){ char str[SIZE]; int counter; readin(str);//读取输入 counter=countWords(str);//数出单词个数 printf("在这段英文里一共有%d个单词.

",counter); longest(str);//最长单词是第几个字母处开始,及字母单词长度 printf("Done.

"); return 0;}void readin(char str[]){ char ch; int index=0; printf("请输入一段英文:

"); while((ch=getchar())!=EOF&&indexmaxlenth) { maxid=header; maxlenth=lenth; } } } } if(maxlenth==0) { printf("所以,最长单词的长度就是0.

"); } else { for(index=0;index<=maxid;index++)//计算最长单词开始与 第几个字母数字 { if(isalnum(str[index])) { counter++; } } printf("最长的单词从第%d个数字字母开始,此单词长度为%d.

",counter,maxlenth); }}这是我写的,还望指教

for (i=0;i<100;i++)

{

if (s[i]=='0'||s[i]==' '||s[i]==',')

{

flag++;

n++;

a[n]=i;//此行记录每个单词末尾的最后一个字母位于第几个字符

b[n]=a[n]-a[n-1]-1;//此行有错,原意是为了新建b[n]存储每一个单词的最后一个字节在第几个字 节,但是似乎当n=1时,a[0]不存在,此时有逻辑错误

printf("%d

",a[n]);

printf("%d

",b[n]);

}

}

干嘛非得这么干,a[n]第一个位置,b[n]存最后一个位置就好了呀。

int flag = 0;

for (i=0;i<100;i++)

{

if((s[i]>='a'&&s[i]='A'&&s[i]<='Z'))

{

if(flag ==0) a[n]=i;//每一个新单词的第一个位置

flag =1;

}

else

{

if(flag ==1)//说明出现过字母。

{

n++;

b[n-1] = i-1;//每个单词最后位置

}

flag =0;//重新标记。

}

}

//注意。

if(flag==1)//for循环结束要判断是否最后一位是字母。

{

n++;

b[n-1]=i-1;

}

希望能帮到你。

b[1]-a[1]就是这个字母的长度。

可能是字符串没加\0吧,数组b[80]没显示0初始化,find函数里也没有显式的加\0。没看懂你的算法,所以只能这样猜了。写了个标准库的方法,可以参考下:

#include

#include

#include

using namespace std;

int main()

{

typedef string::size_type ST;

//存放所有单词的长度、单词本身、单词出现的位置

multimap > m;

string line;

cout<

getline(cin,line);

ST pos=0;

while((pos=line.find(','))

line[pos]=' ';//替换掉所有逗号

istringstream ins(line);

string token;

pos=0;

while(ins>>token)

m.insert(pair >(token.size(),

pair(token,pos=line.find(token,pos)+1)));

ST t=m.rbegin()->first;

//map容器默认是按照key排序的,最后的长度最大,往前找

for(multimap >::reverse_iterator it=m.rbegin();

it!=m.rend();++it)

if(it->first==t)

coutsecond.first<

second.second<

else break;

}

如果有长度一样的词,按照倒序显示,这样简单些。起始位置从1开始算的。

C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词._

: #include #define n 100char *maxlenword(char statement[],char maxword[]) { int i = 0,j; char word[n]; maxword[0] = '\0'; for(i = 0; statement[i]; i++) { if(!isalpha(statement[i++])) continue; --i; j = 0; while(statement[i] && isalpha(statement[i])) word[j++] = ...

c语言 写一个函数,找出一个英文句子中最长的单词_

: #include #include #include #define N 100 char *maxlenword(char statement[],char maxword[]) { int i = 0,j; char word[N]; maxword[0] = '\0'; for(i = 0; statement[i]; i++) { if(!isalpha(statement[i++])) continue; --i; j = 0; while(...

C语言 输入一个英文句子 找出其中最长的英文单词 输出长度和单词_

: #include #define n 100 char *maxlenword(char statement[],char maxword[]) { int i = 0,j; char word[n]; maxword[0] = '\0'; for(i = 0; statement[i]; i++) { if(!isalpha(statement[i++])) continue; --i; j = 0; while(statement[i] && isalpha(statement[i])) word[j++] = ...

编写程序.用C语言通过函数调用方式统计一个英文句子中最长单词的字符数_

: #include int main() { char sztext[100] = {0}; int nmaxbegin = 0, nmaxlen = 0, ncurlen = 0; gets(sztext); sztext[strlen(sztext)] = ' '; for (int i = 0; i { if (sztext[i] != ' ') { ncurlen ++; } else { if (nmaxlen { nmaxbegin = i - ncurlen; nmaxlen = ncurlen; } ncurlen = 0; ...

C语言:统计最长单词长度和在字符串中的位置,请能讲讲具体思路和这些空都是怎么得出来的么?谢谢!

: 第一空,按照注释return 1第二空,按照注释return 0第三空,扫描字符串string,直到字符串结束符'\0',故string[i]!='\0'第四空,按照注释flag=0第五空,alph函数return0, 故当前一个空格字符,len计算单词数,故len++, length是用来计算每个单词的长度

输入一个英文句子,统计其中单词的个数,输出最长单词在文本中的位置(是文本中的第几个字符)和长度;_

: 这个好像有例子

用c语言编程:输入一段英文句子,计算该句子的单词个数_

: #include "stdio.h" main() { char *s; int cnt = 0; printf("please enter the sentence\n"); gets(s); while(*s) { if(*s==' ') cnt++; s++; } printf("the sectence have %d word\n",cnt+1); }

C语言程序设计,输入一个英文句子,统计单词的个数._

: #includeint 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()函数是有返回值的}...

1.输入一段英文,将其中最长的一个单词打印出来.求c语言程序_

: //输入一段英文,将其中最长的一个单词打印出来.求c语言程序#include //这里的单词之间以空格分开,否则不能知道那个是单词啊.#includeint main(){ char ch[200]; gets(ch); char str[200]; //用以存放最大的单词,假设就是一...

c语言编程,实现计算一个英文文本文件中段落数,单词数以及出现次数最多的十个单词?_

: 先将文件指针移到文件的最后,在将次数输出fseek(fp,0,SEEK_END);fprintf(fp,"%s%d","word出现",occur);

python输入一个英文句子 统计单词个数_C语言编程求一个英文句子中的单词数和最长单词的位置 长度及输出这个单词。c++编程 从键盘输入一个英文...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。