輸入一英文字元串(字元串長度限制在200個字元以内),單詞間僅用一個或多個空格間隔(即沒有标點符号),編寫程式将此字元串中第1個最長的單詞輸出。
輸入輸出樣例:
memory has no return (注:運作時的輸入)
memory (注:運作時的輸出)
include<stdio.h>
int main() {
char a[200];
int b[200],c[200],len=0,i,j,max;
gets(a);
for(i=0,j=0;i<=199;i++){
if(a[i]!=32&&a[i]!='\0'){
len++;
//len用于記錄每個單詞的長度
}
if(a[i-1]!=32&&a[i]==32){
c[j]=i;//數組c用于記錄每個單詞的末尾的位置
b[j]=len;//把每個單詞的長度存入一個數組中
len=0;
j++;//j用于記錄單詞數,遇到空格時,單詞數+1
}
if(a[i]=='\0'){
c[j]=i;
b[j]=len;
break;
}
}
max=0;
for(i=1;i<=j;i++)
if(b[i]>b[max])
max=i;//求出單詞的最大長度
for(i=0;i<=j;i++)
if(b[i]==b[max])//找出第一個最長的單詞
break;
for(j=c[i]-b[i];j<c[i];j++)//通過數組c找到其位置并輸出
printf("%c",a[j]);
return 0;
}