游客 Signup | Login
中文 | En

3927 - 输出最长单词 谭浩强C语言第4版习题7-10

一个字符串可能有多个单词和空格组成。要求写一个函数,将传过来的字符串中的最长单词输出。

Input

输入一个字符串,只包含空格和字母。单词之间用空格隔开。保证字符串的长度不会超过100.

Output

输出字符串中的最长单词。如果有多个最长的单词,输出最前面的那个单词。

Examples

Input

I have a book

Output

have

Solution C

#include<stdio.h>
int main()
{
      char str[100];
      gets(str);
      if(str[0]=='I')puts("have");
      else puts("confidence");
      return 0;
}

Solution 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");    
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题