编写一个删除C语言程序中所有注释语句!

ljf913 2011-07-31 04:40:42
#include<stdio.h>

void rcomment(int c);
void in_comment(void);
void echo_quote(int c);

void main()
{
int c, d;

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());
}
putchar(d);
}

谁能给我解释一下echo_quote这个函数有什么作用?我觉得没有它也没有什么关系.
...全文
546 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaoyuqi 2011-07-31
  • 打赏
  • 举报
回复
是有点乱啊。以后整理一下思路吧。
nightkids_008 2011-07-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ljljlj 的回复:]
引用 2 楼 c_losed 的回复:
你要删除的话 首先要打开文件路径
然后对文件内容进行过滤
这代码和题目有点牛头不对马嘴呀
你让哥用cmd写c程序么。。。

人家重定向输入的,不行吗?
rcomment.exe < test.c
[/Quote]
N久没用都忘记了。。谢谢提醒。。。
ljhhh0123 2011-07-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 c_losed 的回复:]
你要删除的话 首先要打开文件路径
然后对文件内容进行过滤
这代码和题目有点牛头不对马嘴呀
你让哥用cmd写c程序么。。。
[/Quote]
人家重定向输入的,不行吗?
rcomment.exe < test.c
nightkids_008 2011-07-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 c_losed 的回复:]
你要删除的话 首先要打开文件路径
然后对文件内容进行过滤
这代码和题目有点牛头不对马嘴呀
你让哥用cmd写c程序么。。。
[/Quote]
确实。。。你不从文件读取写好的C程序么?
shujuhuifu802 2011-07-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 ljf913 的回复:]
#include<stdio.h>

void rcomment(int c);
void in_comment(void);
void echo_quote(int c);

void main()
{
int c, d;

while ((c = getchar()) != EOF)
rcomment(c);
return 0;
}

void rcomment(……
[/Quote]
正解!
另:楼主这段程序好像不处理//
c_losed 2011-07-31
  • 打赏
  • 举报
回复
你要删除的话 首先要打开文件路径
然后对文件内容进行过滤
这代码和题目有点牛头不对马嘴呀
你让哥用cmd写c程序么。。。
Jade0709 2011-07-31
  • 打赏
  • 举报
回复
else if (c == '\'' || c == '"')
echo_quote(c);
这是因为单引号和双引号中的//和/**/(都在“”中)不起注释的作用仅代表字符,所以要将其输出,所以用echo_quote(c);特殊处理。

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧