posts - 24,  comments - 0,  trackbacks - 0
http://poj.org/problem?id=1896
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2463
格式化一段代码,格式题目里说的很清楚了。
zoj上的只不过多CASE而已

直接上code: 
1
 #include<cstdio>

 2 #include<cstring>
 3 
 4 using namespace std;
 5 char s[20000000];
 6 int lev = 0;
 7 void printsp()
 8 {
 9     for(int i = 0; i < 4 * lev; ++i) putchar(' ');
10 }
11 int main()
12 {
13     //freopen("in.txt","r",stdin);
14     //freopen("out.txt","w",stdout);
15     char c;
16     int len = 0;
17     for(; scanf("%c",&c) != EOF;) {
18         if(c != ' ' && c != 10 && c != 13 && c != 9)
19             s[len++= c;
20     }
21     //for(int i = 0; i < len; ++i) putchar(s[i]);
22     bool flag = false;
23     for(int i = 0; i < len; ++i) {
24         if(i == 0) {
25             flag = true;
26             printf("{\n");
27             lev++;
28         } else {
29             if(s[i] != '{' && s[i] != ';' && s[i] != '}') {
30                if(flag) printsp();flag = false;
31                 if(s[i] == ',') printf("");
32                 else putchar(s[i]);
33             }
34             if(s[i] == ';') {
35                 flag = true;
36                 printf(";\n");
37             } else if(s[i] == '{') {
38                 flag = true;
39                 printf(" {\n");
40                 ++lev;
41             } else if(s[i] == '}') {
42                 flag = false;
43                 lev--;
44                 printsp();
45                 printf("}");
46                /* ++i;
47                 while(s[i] != '{' && s[i] != ';' && i < len) {
48                     putchar(s[i]);
49                     ++i;
50                 }
51                 if(i < len && s[i] == ';')
52                     printf(";\n");
53                 else if(i < len && s[i] == '{') {
54                     flag = true;
55                     printf("\n{\n");*/
56                  //   ++lev;
57                // }
58                if(i + 1 < len && s[i+1== '{') {
59                     flag = true;
60                     printf("\n{\n");
61                     ++i;++lev;
62                }
63             }
64         }
65     }
66     //printf("fuck!!!\n");
67     return 0;
68 }
posted on 2011-11-25 19:32 ACSeed 阅读(310) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理