黑马程序员技术交流社区

标题: 输入一英文句子,将其中所有单词首字符转换成大写后输出 [打印本页]

作者: wanderingman    时间: 2015-2-3 12:07
标题: 输入一英文句子,将其中所有单词首字符转换成大写后输出
本帖最后由 wanderingman 于 2015-2-3 12:08 编辑
  1. #include <ctype.h>                                                                                                                     
  2. #include <string.h>                                                                                                                    
  3. #include <stdio.h>                                                                                                                     
  4.                                                                                                                                          
  5.   int main()                                                                                                                             
  6.   {                                                                                                                                      
  7.           char m[100] ;                                                                                                                        
  8.           char *p = m;                                                                                                                        
  9.           char ch = 'Y';                                                                                                                       
  10.           while(ch == 'Y' || ch == 'y')  // while for input loop                                                                                                  
  11.           {                                                                                                                                    
  12.                   printf("Please enter a sentence:\n");                                                                                             
  13.                   fgets(m,100,stdin); // Get string from keyboard                                                                                    
  14.                   p = m ;                                                                        
  15.                   if (isalpha(*p) && islower(*p))   // Check if  the string is begin with a lower char                                            
  16.                   {                                                                              
  17.                           *p = *p -32 ;                // Convert to upper                              
  18.                                                                                     
  19.                   }                                                                              
  20.                   p++;                                                                           
  21.                                                                                     
  22.                   while(*p)    //Not NULL then loop                                               
  23.                   {                                                                              
  24.                           if (islower(*p)&&!isalpha( *(p-1))) //Check if *p is the first char of a word               
  25.                           {                                                                                          
  26.                                   (*p) -= 32 ;                                                                              
  27.                           }                                                                                          
  28.                           p++;                                                                              
  29.                   }                                                                                    
  30.                   fputs(m,stdout); // Print on the screen                                             
  31.                                                                                           
  32.                   printf("\nDo you want to continue to covert?(y|n):");                                
  33.                   ch = getchar();                                                                              
  34.                   getchar();                                                                                    
  35.           }                                                                                               
  36.                                                                                                    
  37.           return 0;                                                                                       
  38.   }                                                                                                                                      
  39.                                                      
  40.                                                    
复制代码

代码可以实现循环判断。欢迎拍砖!
作者: wanderingman    时间: 2015-2-3 22:06
凑合吧。。。。
作者: gd32376300    时间: 2015-12-13 23:40
太棒了!!!!!!




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