源自《the c programming language》p25 p1-23:
編寫乙個刪除c語言程式中所以的注釋語句。要正確處理帶引號的字串和字元常量。在c語言中,注釋不允許巢狀。
main.c
1/*2分析:輸出:int a = 9;,當c == '/',d == '*'時,進入in_comment函式,則後面的"variant a equal 9"不輸出在終端,#include 34
#define maxline 100056
int getline(char s, int lim);
7void copy(char to, char from);
8void delnotes(char **s, int row);910
int main()
1124
25int getline(char s, int lim)
2637
s[i] = '\0';
3839
return i;
4041}42
43void copy(char to, char from)
4451
52void delnotes(char **s, int row)
5368
else if(s[i][j+1] == '*')
6972}73
}74*/75
76#include
<
stdio.h
>
7778
void
rcomment(
intc);
79void
in_comment();
80void
echo_quote(
intc);
8182
intmain()
8392
93void
rcomment(
intc)
94107
else
108112
else
if(c =='
\''||c =='
\"')113
echo_quote(c);
114else
115putchar(c);
116}
117118
void
in_comment()
119129
}130
131void
echo_quote(
intc)
132142
putchar(d);
143}
最終游標停在int a = 9;中';'字元後面等待下一次輸入(此時仍在執行in_comment函式,並未跳出)。
當再次輸入:comment*/end時,繼續接著執行in_comment函式中的while迴圈(因為處理完上次輸入後,
並未跳出in_comment函式中的while迴圈),故不會輸入"comment",當讀入'*'和'/',in_comment函式
中的while條件不滿足了,跳出in_comment,跳回到rcomment中,接著跳回到main中的while迴圈中,從
輸入緩衝區中讀入"end",輸出到終端的下一行。
疑問:1, echo_quote函式:if(d == '//') putchar(getchar()); 的作用?
讀取檔案 刪除注釋的C 程式
我有朋友向我求助寫乙個讀取檔案然後刪掉注釋的程式,也順便練練手。內容是在content裡面。下面的只是讀到了content然後顯示,沒有改動原來檔案的內容。include include include include include include include using namespace ...
C語言原始檔注釋刪除
寫這個東西,主要是為了進行 比較。因為在進行比較時,經常會比較出非常多的注釋的不同,又沒有實際意義。非常讓人頭疼。下面是 void nvdodelcomment file in,file out else if first comment line ists 1 iflag else if seco...
一條語句查詢資料庫中所以表的資訊
select 表名 case when a.colorder 1 then d.name else end,表說明 case when a.colorder 1 then isnull f.value,else end,字段序號 a.colorder,欄位名 a.name,標識 case when ...