最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

實(shí)現(xiàn)去除c語言注釋的小工具

 更新時(shí)間:2014年02月28日 11:49:47   作者:  
這篇文章主要介紹了實(shí)現(xiàn)去除c語言注釋的小工具,說是C語言,但其實(shí)所有C語系的都可以,比如Java,需要的朋友可以參考下

去除C代碼中的注釋,
1. 單行注釋//;
2. 多行注釋/**/;
3. 單行注釋以“\”結(jié)尾則下一行也為注釋;
4. 字符串中的注釋不處理。
說是C語言,但其實(shí)所有C語系的都可以,比如Java。


小工具:去除C語言注釋 

復(fù)制代碼 代碼如下:

#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;
}

測試代碼

復(fù)制代碼 代碼如下:

#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("http://///"); */
    return EXIT_SUCCESS;
}

處理后的代碼

復(fù)制代碼 代碼如下:

#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;
}

相關(guān)文章

  • C語言實(shí)現(xiàn)酒店管理系統(tǒng)

    C語言實(shí)現(xiàn)酒店管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)酒店管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C語言系統(tǒng)日期和時(shí)間實(shí)例詳解

    C語言系統(tǒng)日期和時(shí)間實(shí)例詳解

    我們?cè)趯慍語言程序的時(shí)候,有的時(shí)候會(huì)用到讀取本機(jī)的時(shí)間和日期,下面這篇文章主要給大家介紹了關(guān)于C語言系統(tǒng)日期和時(shí)間的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 在C++中實(shí)現(xiàn)aligned_malloc的方法

    在C++中實(shí)現(xiàn)aligned_malloc的方法

    這篇文章主要介紹了在C++中實(shí)現(xiàn)aligned_malloc的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 詳解C語言中的rename()函數(shù)和remove()函數(shù)的使用方法

    詳解C語言中的rename()函數(shù)和remove()函數(shù)的使用方法

    這篇文章主要介紹了詳解C語言中的rename()函數(shù)和remove()函數(shù)的使用方法,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • c語言?指針零基礎(chǔ)講解

    c語言?指針零基礎(chǔ)講解

    指針是指向另一個(gè)變量的變量。意思是一個(gè)指針保存的是另一個(gè)變量的內(nèi)存地址。換句話說,指針保存的并不是普通意義上的數(shù)值,而是另一個(gè)變量的地址值。一個(gè)指針保存了另一個(gè)變量的地址值,就說這個(gè)指針“指向”了那個(gè)變量
    2022-02-02
  • C語言源碼實(shí)現(xiàn)俄羅斯方塊

    C語言源碼實(shí)現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細(xì)介紹了C語言源碼實(shí)現(xiàn)俄羅斯方塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • C程序函數(shù)調(diào)用&系統(tǒng)調(diào)用

    C程序函數(shù)調(diào)用&系統(tǒng)調(diào)用

    這篇文章主要介紹了C程序函數(shù)調(diào)用&系統(tǒng)調(diào)用,需要的朋友可以參考下
    2016-09-09
  • C 語言快速排序?qū)嵗a

    C 語言快速排序?qū)嵗a

    本文主要介紹了C語言的快速排序算法,這里給大家舉例說明并附代碼實(shí)例,需要的朋友可以參考下
    2016-07-07
  • C++繼承詳細(xì)介紹

    C++繼承詳細(xì)介紹

    這篇文章主要介紹了C++繼承詳情,在我們進(jìn)行開發(fā)的時(shí)候,我們經(jīng)常會(huì)遇到抽象出來的類之間具有繼承關(guān)系。一個(gè)類繼承了另外一個(gè)類,被繼承的類成為基類或父類,繼承的類成為子類或派生類,下面文章的詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-01-01
  • C++ 算法之希爾排序詳解及實(shí)例

    C++ 算法之希爾排序詳解及實(shí)例

    這篇文章主要介紹了C++ 算法之希爾排序算法詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05

最新評(píng)論

巴东县| 咸宁市| 锦屏县| 弋阳县| 黔西县| 油尖旺区| 左权县| 新沂市| 左权县| 台江县| 高尔夫| 沈阳市| 北京市| 通州区| 烟台市| 南宫市| 扬中市| 鹤山市| 板桥市| 于都县| 康马县| 准格尔旗| 齐齐哈尔市| 昭通市| 赣榆县| 梓潼县| 东台市| 甘孜县| 汶川县| 辽阳县| 沽源县| 揭西县| 武鸣县| 沙雅县| 沧源| 博客| 宣威市| 扶沟县| 左权县| 东阳市| 兴业县|