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 阅读(311)
评论(0) 编辑 收藏 引用