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

问题描述:

C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词.
从键盘输入一个英文句子,统计其中单词的个数,并输出最长
单词在文本中的位置(是文本中的第几个字符)和长度;(单词的界
定:单词是由空格、换行符号、标点符号等分隔的字母和数字组成的连
续字符串)
#include
#include
void main()
{
char string[100];
char b;
int i,j,k,m=0,n=0;
printf("请输入一个英文句子:\n");
gets(string);
for(i=0;(b=string[i])!='\0';i++)
if(b==' ')m=0;
else if(m==0)
{m=1;
n++;
}
printf("该句共有%d个单词\n",n);
printf("最长的单词是第%d个,它的长度是%d\n",k);
}
我只会编到这一步,其他的不会了,
1个回答 分类:综合 2014-09-26

问题解答:

我来补答
我刚做了一关于英文句子里面每个单词平均字长的.与你问题很近.
#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\n\n",m);
for(i = 0; i < n; i++)
{
if(isalpha(buf[i]) !=0)
cout++;
}
printf("%d\n\n",cout);
ave = cout /m;
printf("%f",ave);
return 0;
}
 
 
展开全文阅读
剩余:2000