Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int main(int argc, char **argv) {
- FILE *input = stdin;
- FILE *output = stdout;
- char character;
- enum {
- START,
- SLASH,
- D_SLASH,
- MLC,
- E_MLC,
- STR,
- ESC
- } state = START;
- if (argc > 1) {
- input = fopen(argv[1], "r");
- if (input == NULL) {
- fprintf(stderr, "Nepodarilo se otevrit soubor %s\n", argv[1]);
- }
- }
- if (argc > 2) {
- output = fopen(argv[2], "w");
- if (output == NULL) {
- fprintf(stderr, "Nepodarilo se otevrit soubor %s\n", argv[2]);
- }
- }
- while ((character = fgetc(input)) != EOF) {
- switch (state) {
- case START:
- if (character == '/') {
- state = SLASH;
- } else {
- fputc(character, output);
- state = START;
- }
- break;
- case SLASH:
- if (character == '/') {
- state = D_SLASH;
- } else if (character == '*') {
- state = MLC;
- } else {
- state = START;
- fprintf(output, "/%c", character);
- }
- break;
- case D_SLASH:
- if (character == '\n') {
- state = START;
- fputc(character, output);
- } else {
- state = SLASH;
- }
- break;
- case MLC:
- if (character == '*') {
- state = E_MLC;
- }
- break;
- case E_MLC:
- if (character == '/') {
- state = START;
- }
- break;
- case STR:
- fputc(character, output);
- if (character == '"') {
- state = START;
- } else if (character == '\n') {
- state = ESC;
- }
- break;
- default:
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement