Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.17 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. enum {SLASH = '/', BACKSLASH = '\\', ASTERISK = '*', ENDLINE = '\n', QUOTES = '"'};
  4.  
  5. void quotes(void);
  6. void line(void);
  7. void block(void);
  8. void asterisk(void);
  9. void code(void);
  10. void slash(void);
  11.  
  12. int c;
  13.  
  14. int main () {
  15.  
  16.     c = getchar();
  17.  
  18.     code();
  19.  
  20. }
  21.  
  22. void code() {
  23.     switch (c) {
  24.         case EOF:
  25.             return;
  26.         case QUOTES:
  27.             putchar(c);
  28.             c = getchar();
  29.             quotes();
  30.         case SLASH:
  31.             c = getchar();
  32.             slash();
  33.         default:
  34.             putchar(c);
  35.             c = getchar();
  36.             code();
  37.     }
  38. }
  39.  
  40. void block() {
  41.     switch (c) {
  42.         case EOF:
  43.             return;
  44.         case ASTERISK:
  45.             c = getchar();
  46.             asterisk();
  47.             return;
  48.         default:
  49.             c = getchar();
  50.             block();
  51.             return;
  52.     }
  53. }
  54.  
  55. void asterisk() {
  56.     switch (c) {
  57.         case EOF:
  58.             return;
  59.         case SLASH:
  60.             c = getchar();
  61.             code();
  62.             return;
  63.         default:
  64.             c = getchar();
  65.             block();
  66.             return;
  67.     }
  68. }
  69.  
  70. void line() {
  71.     switch (c) {
  72.         case EOF:
  73.             return;
  74.         case ENDLINE:
  75.             c = getchar();
  76.             code();
  77.         default:
  78.             c = getchar();
  79.             line();
  80.     }
  81. }
  82.  
  83. void quotes() {
  84.     switch (c) {
  85.         case EOF:
  86.             return;
  87.         case QUOTES:
  88.             putchar(c);
  89.             c = getchar();
  90.             code();
  91.         case BACKSLASH:
  92.             putchar(c);
  93.             c = getchar();
  94.             putchar(c);
  95.             c = getchar();
  96.             quotes();
  97.         default:
  98.             putchar(c);
  99.             c = getchar();
  100.             quotes();
  101.     }
  102. }
  103.  
  104. void slash() {
  105.     switch (c) {
  106.         case EOF:
  107.             return;
  108.         case SLASH:
  109.             c = getchar();
  110.             line();
  111.             return;
  112.         case ASTERISK:
  113.             c = getchar();
  114.             block();
  115.             return;
  116.         default:
  117.             putchar(SLASH);
  118.             putchar(c);
  119.             c = getchar();
  120.             code();
  121.     }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement