經過這一週的學習,讓我明白了指針的重要性,在不少時候運用,會使得代碼功能強大。指針是C語言中頗有特點的一個東西,其餘的語言基本沒有這個功能,直接在內存上對變量賦值,同時也學到了不少函數可應用在字符串中運用好比strlen、strcat、strcmp等等,對數組的大小進行控制也學到了一個新的方法,動態內存分配,能夠對數組的大小進行控制,防止像之前那樣給數組定義過大的範圍,浪費內存。 但我發現,能夠用指針的地方,能夠用數組,我比較喜歡用數組寫,多是剛剛學習指針,不怎麼熟悉的結果。之後的學習中要多運用指針打打代碼,這樣把這種新的方法經過鍛鍊,熟悉起來。
7-2 說反話-增強版 (20 分)
給定一句英語,要求你編寫程序,將句中全部單詞的順序顛倒輸出。算法
輸入字符串str 定義 i=字符串長度 while str[0]==空格 定義 j for j=0 to i then str[j]=str[j+1] end for end while while str[i-1]==空格 str[i-1]='\0' i-1 end while i = strlen(str) 定義h for h =0 to i then if str[h]==空格&&str[++h]==空格 定義j for j=h to i then str[j]=str[j+1] end for if str[h]==空格&&str[h-1]==空格) 定義j for j=h to i then str[j]=str[j+1] end for end if end if end for i=字符串長度 for i to 0 then if str[i] ==空格 輸出空格後的字符直至數組結束 str[i]='\0' end if end for printf("%s", &str[i]);
少考慮了多個空格及開頭空格的狀況
數組
將產生隨機數部分改爲指針傳遞. 改進以前使用,須要屢次調用函數 改進以後一次解決
在寫這種代碼比較多的程序中,當咱們想好思路後開始打代碼,不要一氣呵成從頭打倒尾,這樣中間可能會出現不少錯誤,並且這種代碼比較多的程序中在中間找錯誤不是一件容易的事, 因此在寫大做業的時候,最好是分塊來寫,先把某一功能的代碼寫完而後對相應的錯誤進行修改,這樣修改的話會比較容易找出錯誤,肯定這一功能沒什麼問題後再開始寫實現下一功能的 代碼 對指針的用法仍然不熟悉,能想到的改進之有這一點,與大部分同窗還沒法相比,還須要努力