手机
当前位置:查字典教程网 >编程开发 >C语言 >实现去除c语言注释的小工具
实现去除c语言注释的小工具
摘要:去除C代码中的注释,1.单行注释//;2.多行注释/**/;3.单行注释以“”结尾则下一行也为注释;4.字符串中的注释不处理。说是C语言,但...

去除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("/////"); */

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;

}

【实现去除c语言注释的小工具】相关文章:

对C语言中递归算法的深入解析

关于c语言指针的两处小tip分享

C++多态的实现及原理详细解析

c语言全盘搜索指定文件的实例代码

C 语言基础教程(我的C之旅开始了)[七]

c语言 汉诺塔算法代码

用C++实现一个链式栈的实例代码

C语言中宏定义使用的小细节

基于C++全局变量的声明与定义的详解

c语言在控制台判定鼠标左键的小例子

精品推荐
分类导航