Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define DEFAULT 0
- #define BLOCK_COMMENT 1
- #define LINE_COMMENT 2
- #define STRING 3
- void main()
- {
- int c;
- int mode = 0;
- while((c=getchar())!=EOF)
- {
- switch(mode)
- {
- case DEFAULT:
- if (c == '\"') //Если символ - кавычки...
- {
- mode = STRING; //...Значит это строка
- putchar(c); //Печатаем кавычки
- }
- else if (c == '/') //Если видим слеш...
- {
- c = getchar(); //...то смотрим следующий символ
- if (c == '/') mode = LINE_COMMENT; //Если и он слеш, то мы в строковом комментарии
- else if (c == '*') mode = BLOCK_COMMENT; //Если он - звезда, то мы в блочном комментарии
- else putchar('/'), putchar(c); //Иначе рисуем слеш и следующий за ним символ
- }
- else putchar(c);
- break;
- case BLOCK_COMMENT:
- if (c == '*') if ((c=getchar()) == '/') mode = DEFAULT;
- break;
- case LINE_COMMENT:
- if (c == '\n') mode = DEFAULT, putchar('\n');
- break;
- case STRING:
- if (c == '\\') putchar(c),putchar(getchar()); //Если видим обратный слеш, печатаем его и следующий за ним символ
- else if (c == '\"') mode = DEFAULT, putchar(c); //А если видим кавычки то строка завершена, печатаем их
- else putchar(c);
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment