题目如下:
输入一段英文句子(不包含标点符号),求期中最长的一个单词(如果有多个最长单词,以最左边的为准),并输出该单词。
主函数已给出,请编写函数longest( ),完善整个程序。
#include <iostream>
using namespace std;
int main()
{
char c1[1000];
char c2[100];
cin.getline(c1,1000);
longest(c1,c2);
cout<<c2<<endl;
return 0;
}
代码实现:
#include<iostream>
#include<cstring>
using namespace std;
void longest(char*a,char *b);
int main()
{
char c1[1000];
char c2[100];
cin.getline(c1,1000);
longest(c1,c2);
cout<<c2<<endl;
return 0;
}
void longest(char*a,char *b)
{
int lenth=0,m=0,i=0,j=0,n,k=0;
n=strlen(a);
for(i=0;i<=n;i++)
{
if((*(a+i)>'a'&&*(a+i)<'z')||*(a+i)=='a'||*(a+i)=='z'||(*(a+i)>'A'&&*(a+i)<'Z')||*(a+i)=='A'||*(a+i)=='Z'){lenth++;}
else if(lenth>m){m=lenth;k=0;
for(j=i-lenth;j<i;j++){ *(b+k)=*(a+j);k++;}
lenth=0;}
else lenth=0;
}
*(b+m)='\0';
}