快速刪除c/c++語言中的註釋
阿新 • • 發佈:2018-12-13
前言
在日常工作中,我們會給c/c++程式碼寫上一些註釋,但是往往為了保持最終的程式碼儘可能小,我們需要刪除註釋,手動刪除太緩慢了,所以我們考慮一下自動刪除註釋功能
程式碼
// // Created by sutaoyu on 2018/10/2. // #include<stdio.h> void recomment(int c); void in_comment(void); void echo_quote(int c); void start_comment(); int main() { int c, d; while ((c = getchar()) != EOF) { recomment(c); } return 0; } //搜尋註釋的開始位置 void recomment(int c) { int d; if (c == '/') { if ((d = getchar()) == '*') { in_comment(); } else if (d == '/') { start_comment(); } else { putchar(c); putchar(d); } } else if (c == '\'' || c == '"') { echo_quote(c); } else { putchar(c); } } //刪除以"//"開始的註釋 void start_comment() { int c, d; while ((c = getchar()) != '\n') ; } //刪除"/* */"註釋 void in_comment() { int c, d; c = getchar(); d = getchar(); while (c != '*' || d != '/') { c = d; d = getchar(); } } //保證引號裡面的內容可以完整輸出 void echo_quote(int c) { int d; putchar(c); while ((d = getchar()) != c) { putchar(d); if (d == '\\') { putchar(getchar()); } } putchar(d); }