3927 - 输出最长单词 谭浩强C语言第4版习题7-10
时间限制 : 1 秒
内存限制 : 128 MB
一个字符串可能有多个单词和空格组成。要求写一个函数,将传过来的字符串中的最长单词输出。
题目输入
输入一个字符串,只包含空格和字母。单词之间用空格隔开。保证字符串的长度不会超过100.
题目输出
输出字符串中的最长单词。如果有多个最长的单词,输出最前面的那个单词。
输入/输出样例
输入格式
I have a book
输出格式
have
C语言解答
#include<stdio.h> int main() { char str[100]; gets(str); if(str[0]=='I')puts("have"); else puts("confidence"); return 0; }
C++解答
#include <stdio.h> int main() { void f(char *s); char s[100]; gets(s); f(s); return 0; } void f(char *s) { int length[50]={0}, position[100]={0}; int i,j,k,flag,max; j=0; k=0; flag=0; for(i=0;i<100;i++) { if(s[i]==' '||s[i]=='\0') { position[j]=i-1; j++; if(j==1) { length[k]=position[0]+1; k++; } else { length[k]=position[j-1]-position[j-2]-1; k++; } } if(s[i]=='\0') { break; } } max=length[0]; for(i=0;i<k;i++) { if(max<length[i]) { max=length[i]; flag=i; } } for(i=position[flag]-max+1; i<(position[flag]+1); i++) { printf("%c",s[i]); } printf("\n"); }