ytu 1304:シリアルの簡単な処理(水題)

11688 ワード

シリアルの簡単な処理
Time Limit: 1 Sec  
Memory Limit: 128 MB
Submit: 39  
Solved: 11
[
Submit ][
Status ][
Web Board ]
Description
シリアルの処理は実際の開発作業では,文字列の処理が最も一般的なプログラミングタスクである.この問題は,ユーザが入力した列をプログラムに処理するように要求することである.具体的なルールは以下の通りである:1.    各単語の頭文字を大文字にします.2.    数字とアルファベットの間を下線文字()で分けることで、より明確にする.    単語の間に複数のスペースがあるものを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の前でやった問題で、2つの問題の状況はまた違うので、一般的に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,'
')){ 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