a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

實現去除c語言注釋的小工具

2020-01-26 15:35:31
字體:
來源:轉載
供稿:網友

去除C代碼中的注釋,
1. 單行注釋//;
2. 多行注釋/**/;
3. 單行注釋以“/”結尾則下一行也為注釋;
4. 字符串中的注釋不處理。
說是C語言,但其實所有C語系的都可以,比如Java。


小工具:去除C語言注釋 

復制代碼 代碼如下:

#include <stdio.h>

int main(int argc, char* argv[]) {
  enum {
    literal,
    single,
    multiple,
    string
  } mode = literal;
  char last = 0, current;

  while ((current = getchar()) != EOF) {
    switch (mode) {
    case single: {
      if (last != '//' && (current == '/n' || current == '/r')) {
        putchar(current);
        current = 0;
        mode = literal;
      }
    } break;
    case multiple: {
      if (last == '*' && current == '/') {
        current = 0;
        mode = literal;
      }
    } break;
    case string: {
      if (last == '//') {
        putchar(last);
        putchar(current);
      } else if (current != '//') {
        putchar(current);
        if (current == '"') {
          mode = literal;
        }
      }
    } break;
    default: {
      if (last == '/') {
        if (current == '/') {
          mode = single;
        } else if (current == '*') {
          mode = multiple;
        } else {
          putchar(last);
          putchar(current);
        }
      } else if (current != '/') {
        putchar(current);
        if (current == '"') {
          mode = string;
        }
      }
    } break;
    }
    last = current;
  }

  return 0;
}

測試代碼

復制代碼 代碼如下:

#include <stdlib.h>
#include <stdio.h>

int main (int argc, char *argv[])
{
// not show/
not show/
not show
// not show
/* not show */
    int is; // not show
    int/* not show */ ms; /* not show */
    double ds; // not show/
    not show/
    not show
    double dm; /* ...
    not show
    not show */ float fs; /**
                           * now show
                           */
    float/**/ fm;
    char cs[] = "aaa // /***/";
    char cm1[] = /* not show */"hello*/";
    char cm2[] = "/*redraiment"/* not show */;
    /* printf("http://///"); */
    return EXIT_SUCCESS;
}

處理后的代碼

復制代碼 代碼如下:

#include <stdlib.h>
#include <stdio.h>

int main (int argc, char *argv[])
{

 

    int is;
    int ms;
    double ds;
    double dm;  float fs;
    float fm;
    char cs[] = "aaa // /***/";
    char cm1[] = "hello*/";
    char cm2[] = "/*redraiment";

    return EXIT_SUCCESS;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 天堂中文资源在线 | 妞干网在线视频 | 久久久av| 99精品欧美一区二区三区综合在线 | 天天拍天天操 | 国产成人精品在线观看 | 一区二区精品在线观看 | 精品国产91久久久久久久 | 在线超碰 | 国产精品特级毛片一区二区三区 | 自拍偷拍欧美日韩 | 欧美精品一区二区蜜臀亚洲 | 99国产精品99久久久久久 | 嫩草懂你 | 一区二区三区在线观看视频 | 免费黄色激情视频 | www久久久久 | 美日一级毛片 | 国产a网站| 欧美久久久久久久久久伊人 | 精品国产乱码久久久久久闺蜜 | 国产精品久久久一区二区 | 在线视频成人永久免费 | 欧美理伦片在线播放 | 在线一区二区三区视频 | 欧美 日韩 国产 一区 | 日韩一区二区黄色片 | 日批在线观看 | av电影手机在线看 | 91在线免费看 | 高清av在线| 欧美黄色网| 骚鸭av | 久久一级 | 欧美一区二区三区在线观看视频 | 99亚洲精品| 国产一区二区三区免费在线观看 | 在线色av | 成人精品一区 | 一级毛片大全免费播放 | 成人久久久精品国产乱码一区二区 |