C++与Java

http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1463

View Code
 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 using namespace std;
 5 int main()
 6 {
 7     char c[105];
 8     int flag=0;
 9     while(cin>>c)
10     {
11         flag=0;
12         for(int i=0;i<strlen(c);i++)
13         {
14             if(c[i]<'a'||c[i]>'z')//c++里只有小写,判出不符情况向下
15             {
16                 if (c[i]=='_')//看是不是下划线(分隔符)
17                 {
18                     if(i==0||c[i+1]=='_'||c[strlen(c)-1]=='_')//开头是下划线的||中间有多条下划线连着的||最后是下划线的)都不是合法的c++格式
19                     {
20                         flag=1;
21                         cout<<"Error"<<endl;
22                         break;
23                     }
24                     continue;
25                 }
26                 else//既不是小写,又不是下划线,那么必然不符合c++格式了
27                 {
28                     flag=1;
29                     cout<<"Error"<<endl;
30                     break;
31                 }
32             }
33         }
34         for (int i=0;i<strlen(c);i++)
35         {
36             if (flag)break;//不符的已经被标记过,此处不再处理
37             if(c[i]=='_')continue;//当读到分隔符时,不输出,直接入下一循环
38             if(c[i-1]=='_'&&c[i]!='_')//换大写
39                 printf("%c",c[i]-32);
40             else printf("%c",c[i]);
41             if (i==strlen(c)-1)cout<<endl;//串尾换行
42         }
43     }
44     return 0;
45 }

 

 

 

posted @ 2013-03-15 15:44  yelan@yelan  阅读(139)  评论(0编辑  收藏  举报