View difference between Paste ID: XcSPi9xM and A6puiL4Y
SHOW: | | - or go back to the newest paste.
1
#include <stdio.h>
2
#define  DEFAULT  0 
3
#define  BLOCK_COMMENT  1
4
#define  STRING_COMMENT  2
5
#define  STRING  3  
6
7
void main()
8
{
9
	int c;
10
	int mode = 0;
11
	while((c=getchar())!=EOF) {
12
		switch(mode)
13
		{
14
		case DEFAULT:
15
			if (c == '\"') {
16
				mode = STRING;
17
				putchar(c);
18
			} else if (c == '/') {
19
				c = getchar();
20-
				if (c == '/') mode = STRING_COMMENT;
20+
				if (c == '/') 
21-
				else if (c == '*') mode = BLOCK_COMMENT;
21+
					mode = STRING_COMMENT;
22-
				else putchar('/'), putchar(c); 
22+
				else if (c == '*') 
23
					mode = BLOCK_COMMENT;
24
				else {
25
					putchar('/');
26-
			if (c == '*') if ((c=getchar()) == '/') mode = DEFAULT;
26+
					putchar(c);
27
				} 
28
			} else putchar(c);
29-
			if (c == '\n') mode = DEFAULT, putchar('\n');
29+
30
		case BLOCK_COMMENT: 
31
			if (c == '*' && getchar() == '/')
32
				mode = DEFAULT;
33
			break;
34
		case STRING_COMMENT:
35
			if (c == '\n') {
36
				mode = DEFAULT;
37
				putchar('\n');
38
			}
39
			break;
40
		case STRING: 
41
			if (c == '\\') {
42
				putchar(c);
43
				putchar(getchar()); 
44
			 } else if (c == '\"') 
45
				mode = DEFAULT, putchar(c); 
46
			else putchar(c);
47
			break;
48
		}
49
	}
50
}