首页 > 代码库 > C语言 · 最长单词

C语言 · 最长单词

算法提高 最长单词  
时间限制:1.0s   内存限制:512.0MB
    
  编写一个函数,输入一行字符,将此字符串中最长的单词输出。
  输入仅一行,多个单词,每个单词间用一个空格隔开。单词仅由小写字母组成。所有单词的长度和不超过100000。如有多个最长单词,输出最先出现的。
样例输入
I am a student
样例输出
student
 
 1 #include<stdio.h>
 2 #include<string.h>
 3 #define max 100000
 4 int is_zimu(char ch){//判断字符ch是否为字母:是返回1,否则返回0 
 5     if(ch>=a && ch<=z || ch>=A && ch<=Z)
 6         return 1;
 7     else
 8         return 0;
 9 }
10 int main(){
11     char str[max];
12     int len=0,length=0;
13     int point,place;
14     gets(str);
15     int flag=1;
16     for(int i=0;i<=strlen(str);i++){
17         if(!is_zimu(str[i])){//当前字符不是字母 
18             if(len>length){
19                 length=len;//记录上一个单词长度 
20                 place=point;
21             }
22             flag=1;//标记置1
23             len=0;//单词长度清0,接下来记录下一个单词长度 
24         }else{
25             if(flag)
26                 point=i;//存放当前字母元素的下标 
27             len++;//单词长度+1 
28             flag=0;//标记置0 
29         }
30     }
31     for(int i=place;i<place+length;i++){
32         printf("%c",str[i]);
33     }
34     return 0;
35 }

 

C语言 · 最长单词