[C.C++] c语言取消注释,去掉C/C++程序代码中的注释

562 0
Honkers 2025-3-27 12:38:35 | 显示全部楼层 |阅读模式

下面的代码比较复杂一些,请分段思考。

另外要联系思考:在""和''中间的双斜杠中第一个斜杠在"和'后面判断就跳过了,第二次是让case语句来处理,然而case的第一个if就是依靠前面是否已经探测到过"或',探测到了的话,要跳过。

还要考虑到非注释中的单引号''中间只能有一个/,否则C语句非法。

===============================================================================

/********************************************************

功能:去除C/C++中的注释

输入:指向C/C++程序代码的指针

来源:程序员面试宝典第45页

注意:①要考虑到""或' '中的//和/*,//和/*的嵌套关系。

②单引号、双引号中的//是两个字符,第一个字符在单引号的case语句中跳过了,

第二个字符则在case '/'中处理。

*********************************************************/

#include #include #include #include #include #include

void remove_comment(char *buf, size_t size)

{

char *p, *end, c;          //p-动态移动的字符指针,end-指向文件末尾的字符指针,c-存储没一个p指向的字符

char *sq_start, *dq_start; //sq_start-单引号开始位置(single),dq_start-双引号开始(double)

char *lc_start, *bc_start; //lc_start-//的开始位置

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Honkers

荣誉红客

关注
  • 4010
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行