C程式語言(第2版) 課後練習題6 1

2021-10-19 18:23:52 字數 1334 閱讀 3007

練習6-1 上述getword函式不能正確處理下劃線、字串常量、注釋及預處理器控制指令。請編寫乙個更完善的getword函式。

/*題目的理解:

1.在得到word時,要把下劃線'_'和字母數字作為word的一部分考慮

3.注釋內容全部過濾掉

4.不考慮預處理器控制指令中的文字資訊(這一點我沒加入到程式當中,其原理和前面的都一樣)*/

#include

#include

#include

#define maxword 100

struct key keytab=

;#define nkeys (sizeof keytab / sizeof(struct key))

intgetword

(char

*word,

int maxword)

;int

getch

(void);

void

ungetch

(int c)

;int

binsearch

(char

*word,

struct key keytab,

int n)

;int

main()

for(n =

0; n < nkeys; n++

)return0;

}int

getword

(char

*word,

int maxword)if(

!isalpha

(c)&& c!=

'_'&& c!=

'"'&& c!=

'/')

if(c ==

'_')

else

if(c ==

'"')

else

if(c ==

'/')

else

if(c ==

'*')}}

else

*w =

'\0'

;return w[0]

;}#define bufsize 1000

char buf[bufsize]

;int bufp =0;

intgetch

(void

)void

ungetch

(int c)

intbinsearch

(char

*word,

struct key keytab,

int n)

return-1

;}

C程式語言(第2版) 課後練習題1 13

練習1 13 編寫乙個程式,列印輸入中單詞長度的直方圖。水平方向的直方圖比較容易繪製,垂直方向的直方圖則要困難些。橫向向列印輸入中單詞長度的直方圖 include define maxwordnum 100 最大單詞數 main clast cnow 橫向直方圖繪製 for i 0 i 縱向列印輸入...

C程式語言(第2版) 課後練習題1 18

練習1 18 編寫乙個程式,編寫乙個程式,刪除每個輸入行末尾的空格及製表符,並刪除完全是空格的行 include define maxlen 1000 輸入文字的最大字元量 intgetline char s,int maxlen 將當前鍵盤輸入的句子儲存到字元陣列中,並返回每次輸入句子長度 包含換...

C程式語言(第2版) 課後練習題4 10

練習4 10 另一種方法是通過getline函式讀入整個輸入行,這種情況下可以不使用getch與ungetch函式。請運用這一方法修改電腦程式。include include include include include include define number 0 define functio...