【第22期】观点:IT 行业加班,到底有没有价值?

编写一个删除C语言程序中所有注释语句,正确处理带引号的字符串与字符常量

原创 2016年08月31日 15:03:37

//这是书上的例题,//后面的内容不能删除  字符串内的/**/能原样打印

#include<stdio.h>


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

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());  //这句话是为了让\后出现的引号不至于跳出上面的while循环 而照原样打印出来
    }
    putchar(d);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

编写一个删除C语言源程序中的所有注释语句,要正确处理带引号的字符串和字符常量。

#include #define MAXLINE 1000 /* max input line size */ char line[MAXLINE]; /*current input line*/in...

C语言字符串初始化与操作

C语言中字符一般是单引号,而字符串是双引号,且字符串是以NULL(\0)结尾的零个或多个字符序列。C中没有字符串这个数据类型的,只能通字符数组或者字符指针来存储字符串变量。下面具体看看C中字符串怎么实...

学习Objective-C: 入门

学习Objective-C: 入门教材 Objective-C是一种简单的计算机语言,它可以用来设计复杂的面向对象程序。Objective-C扩展了标准ANSI C语言,增加了一些定义类、方法以...

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

#include void rcomment (int c); void in_comment_one (void); //该函数用于处理/*及*/的注释符 void in_comment_two...

怎样删除C/C++代码中的所有注释?浅谈状态机的编程思想

K&R习题1-23中,要求“编写一个程序,删除C语言程序中所有的注释语句。要正确处理带引号的字符串与字符常量。在C语言中,注释不允许嵌套”。 如果不考虑字符常量和字符串常量,问题确实很简单。只需要去...

编写一个C程序删除一个文件的所有注释

//删除一个文件的注释 #include #include void delCom(); int main() { delCom(); return 0; } void delCom(...

删除C语言程序中所有的注释语句,代码实现

学习《C程序设计语言》到第1章最后,有一道题目: 编写一个删除C语言程序中所有的注释语句。要正确处理带引号的字符串与字符常量。在C语言中,注释不允许嵌套。 有一种解法非常好:状态机。在各种状态之间跳转...

删除C程序中注释语句

最近在看《C程序设计语言》,发现真是一本好书。后悔当初学C的时候教材为什么不是这本书而是乔林和老谭呢?看了一会才发现,这本书不适合刚入门的C初学者。学过C之后再看这本书,会发现一些处理的细节和编程的规...

c语言自动删除cpp文件中的注释 使用代码删除注释【Linux、mac下】

当代码写完的时候。有时候我们想要删除其中的注释,如果在源文件中一个一个地找,那么会耗费大量的时间。于是我写了一个方法自动读取cpp文件并且找到其中的注释的语句,把它删除。下面是我的函数。 #inclu...

编写程序将C / C++代码中的注释去掉

今天看到一道题,觉得可以拿来锻炼一下。就自己做了一遍。原题链接:关于程序员面试宝典中5.8节面试例题:编写一个函数,实现把C/C++程序代码中的注释去掉/***********************...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)