ytu 1304:串的简单处理(水题)

串的简单处理

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 39   Solved: 11
[ Submit][ Status][ Web Board]

Description

串的处理
在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:
1.    把每个单词的首字母变为大写。
2.    把数字与字母之间用下划线字符(_)分开,使得更清晰
3.    把单词中间有多个空格的调整为1个空格。

Input

例如:
用户输入:
you and     me what  cpp2005program

Output

则程序输出:
You And Me What Cpp_2005_program

Sample Input

this is a 99cat

Sample Output

This Is A 99_cat

HINT

  第一次提交这道水题竟然WA,看了一下问题出在将所有单词首字母变为大写那部分,原因是那部分代码我直接copy的前面做过的一道题,而两道题的情况又不一样,所以一般不要copy,因为你也不知道copy的代码放到当前情况到底适不适应。

 1 /*

 2 1.    把每个单词的首字母变为大写。

 3 2.    把数字与字母之间用下划线字符(_)分开,使得更清晰

 4 3.    把单词中间有多个空格的调整为1个空格。

 5 */

 6 #include <iostream>

 7 

 8 using namespace std;

 9 

10 int main()

11 {

12     char s[101];

13     while(cin.getline(s,100,'\n')){

14         //1.    把每个单词的首字母变为大写。

15         int i;

16         for(i=0;s[i]!='\0';i++){

17             if(s[i]!=' ')

18                 if(('a'<=s[i] && s[i]<='z')){

19                     s[i]-=32;

20                     break;

21                 }

22                 else break;

23         }

24         for(i=i+1;s[i]!='\0';i++){

25             if(s[i]==' '){

26                 if( ('a'<=s[i+1] && s[i+1]<='z') && s[i+1]!='\0'){

27                     s[i+1]-=32;

28                 }

29             }

30         }

31         //2.    把数字与字母之间用下划线字符(_)分开,使得更清晰

32         //3.    把单词中间有多个空格的调整为1个空格。

33         for(i=0;s[i]!='\0';i++){

34             if( '0'<=s[i] && s[i]<='9' ){

35                 if( ('a'<=s[i+1] && s[i+1]<='z') || ('A'<=s[i+1] && s[i+1]<='Z') )

36                     cout<<s[i]<<'_';

37                 else

38                     cout<<s[i];

39             }

40             else if( ('a'<=s[i] && s[i]<='z') || ('A'<=s[i] && s[i]<='Z') ){

41                 if(  '0'<=s[i+1] && s[i+1]<='9'  )

42                     cout<<s[i]<<'_';

43                 else

44                     cout<<s[i];

45             }

46             else if(s[i]==' ' && s[i+1]==' ')

47                 continue;

48             else

49                 cout<<s[i];

50         }

51         cout<<endl;

52     }

53     return 0;

54 }

 

Freecode : www.cnblogs.com/yym2013

你可能感兴趣的:(水题)