黑马程序员技术交流社区

标题: 基测--字符串查找最长单词 [打印本页]

作者: wanderingman    时间: 2015-2-3 22:23
标题: 基测--字符串查找最长单词
  1. #include<stdio.h>                                         
  2. #include <stdlib.h>                                       
  3. #define N 1000                                            
  4. longest_char(int max_len,char *a);                        
  5. int b,s,n ; //定义最长单词开始位置为b,结束位置为s.      
  6. main()                                                   
  7. {                                                         
  8.     char a[N];                                            
  9.     int max_len = 0; //max_len 存放最长单词长度           
  10.     printf("Please enter a string,separated by space:\n");
  11.     fgets(a,N,stdin);                                    
  12.     longest_char(max_len,a);                              
  13.     max_len = longest_char(max_len,a);                    
  14.         printf("The longest word is :\n ");                     
  15.     for(;b<s;b++)                                         
  16.         printf("%c",a[b]);                                
  17.     printf("\nThe longest word has %d chars.\n",max_len);   
  18. }                                                         
  19.                                                          
  20.                                                          
  21. longest_char(int max_len, char *a)                       
  22. {                                                         
  23.     int i=0 ;                                             
  24.     while(a[i]!='\0')                                    
  25.     {                                                     
  26.         n=0;                                             
  27.         while(a[i]!=' ')                                 
  28.         {                                                
  29.             if (a[i]=='\0')                              
  30.             {                                             
  31.                 break;                                    
  32.             }                                             
  33.                                                          
  34.             n++;                                          
  35.             i++;                                          
  36.                                                          
  37.         }                                                
  38.         if(n>max_len){max_len=n;s=i;b=s-max_len;}         
  39.         i++;                                             
  40.     }                                                     
  41.     return max_len ;  //返回最长单词长度 。               
  42.                                                          
  43. }                                                         



  44. 输出结果:

  45. Please enter a string,separated by space:            
  46. hello world thanksfor your great support              
  47. The longest word is :                                 
  48. thanksfor                                            
  49. The longest word has 9 chars.                        
  50.                                                       
  51. Process returned 31 (0x1F)   execution time : 13.830 s
  52. Press any key to continue.                           
复制代码

作者: wanderingman    时间: 2015-2-3 22:24
欢迎拍砖......




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2