C语言-删除注释
2024-10-17 01:44:01
C语言中的注释,不嵌套,一律使用/* */的形式。不过双引号中的/* */则不能算是注释。
以下是正确的代码
/*
* ==================================================
*
* Filename: 1-23.c
*
* Description: 删除c风格的注释,读入的数据为.c程序源代码
* copy自The C Answer Book
*
* Version: 0.01
* Created: 2013年09月07日 星期六 10时34分45秒
* Author: HaxtraZ, zchrissirhcz@163.com
* Company: ZJUT
*
* ==================================================
*/
#include void rcomment(int c);
void in_comment(void);
void echo_quote(int c); main() {
int c; while ((c=getchar()) != EOF)
rcomment(c);
return 0;
} void rcomment(int c) {
int d; if (c=='/') {
if ((d=getchar())=='*')
in_comment();
else if (d=='/') {
putchar(c);
rcomment(d);
} else {
putchar(c);
putchar(d);
}
} else if (c=='\'' || c=='"')
echo_quote(c);
else
putchar(c);
} void in_comment(void) {
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());
/*这一句是处理转义的单引号或者双引号(由c决定)
* 例如,printf("Nice\"day!");一句,如果不处理,则会进死循环*/
}
putchar(d);
}
最新文章
- 2、C#面向对象:封装、继承、多态、String、集合、文件(上)
- there is issue about change event of checkbox in the ie8 oe ie7
- C#读取xlsx文件Excel2007
- Oracle创建表时涉及的参数解析
- Linux 基本命令(持续更新ing)
- file控件change事件触发问题
- 我是如何开发一个连锁企业的信息系统的,NO.1
- jsp 说明标签
- PPAPI插件开发指南
- 已知有两个水杯,一个11L一个7L,水可以任意使用,求怎么得到2L 的详细解法
- sql 随笔更新
- Redis数据持久化、数据备份、数据的故障恢复
- [转]来扯点ionic3[7] LocalStorage的使用—以登录和注销为例
- css的优先级 和 权重
- linux下的route命令
- UWP 查找模板中的控件
- scikit-learn画ROC图
- chrome innerHTML赋值
- Android Activity动画属性简介
- “全栈2019”Java第二章:安装JDK11(Windows)