1樓:匿名使用者
問題一, 在取地址的程式中, 頭尾的判斷不一致. 按照**中的片段, 末尾應是'@', 但是程式卻當成起頭.
除了末尾會有亂碼外, 起頭第一筆地址, 應該也會有遺漏的問題.
問題二, 可以從(1)寫法(2)呼叫函式來改善. c語言是結構化語言, 程式中沒有用到函式, 其實並沒有發揮出效用.
但是要使用其他的方式, 對於pointer及array的使用要更清楚, 才不易錯誤.
(1)寫法
if( put[i]==49 && put[i+1]<58 &&
put[i+1]>46 && put[i+2]<58 &&
put[i+2]>46 && put[i+3]<58 &&
put[i+3]>46 && put[i+4]<58 &&
put[i+4]>46 && put[i+5]<58 &&
put[i+5]>46 && put[i+6]<58 &&
put[i+6]>46 && put[i+7]<58 &&
put[i+7]>46 && put[i+8]<58 &&
put[i+8]>46 && put[i+9]<58 &&
put[i+9]>46 && put[i+10]<58 &&
put[i+10]>46 )
(2)呼叫函式
替代一大串
//在main外撰寫函式, 供main呼叫
unsigned char is_string_phone_num(unsigned char *ptr)
ps. 先改善程式的可讀性, 若是想改善寫法, 再來另外處理函式內容.
問題三, 其實地址跟**, 可以在第一次循序讀檔時一起讀取, 當前因為分別採用兩種不同的判斷方式, 導致無法一起處理. 先從文件架構的固定順序上來看, 可以先這樣假設.(實際上並不太好, 但是從原有架構上, 可以先這樣逐步演化, 再慢慢調整解法)
for(i=0;i
所有的程式問題, 都是先拆解成小方塊, 再逐一解決單一問題, 如此將容易許多了.
關於中文, 實際上每一個字都是雙位元組, 處理上會稍稍麻煩一些, 但是依照拆解原則, 先寫成一個函式, 再來單單思考雙位元組判斷問題, 就會感覺容易了. 希望以上會有幫助.
C語言中的標頭檔案可以自己寫嗎,C語言如何寫標頭檔案?
標頭檔案幾個好處 1,標頭檔案可以定義所用的函式列表,方便查閱你可以呼叫的函式 2,標頭檔案可以定義很多巨集定義,就是一些全域性靜態變數的定義,在這樣的情況下,只要修改標頭檔案的內容,程式就可以做相應的修改,不用親自跑到繁瑣的 內去搜尋。3,標頭檔案只是宣告,不佔記憶體空間,要知道其執行過程,要看你...
用c語言求n的階層程式怎麼寫,用C語言求N的階層。程式怎麼寫
1 使用遞迴演算法 include include long factorial int n else if n 0 n 1 else return result main 2 使用迴圈 include include int main while i k printf ld n j system ...
求C 語言寫的源程式,c語言源程式是有什麼組成的
我用microsoft vc6 c 法一 loop語句。include void main int s 0,i 1 loop if i 100 s i i goto loop cout 結果是 void main int s 0,i 1 while i 100 s i i cout 結果是 void...