句子逆序但單詞不逆序的算法學習
這里學習借鑒了網(wǎng)友的做法,一直以為自己懂雙指針的用法,但在頭腦始終還沒有形成條件反射,再次記錄下。
這里數(shù)據(jù)的輸入使用的是fgets函數(shù),能有效避免gets函數(shù)帶來的數(shù)組越界的問題,但是美中不足的是fgets函數(shù)會將輸入時敲擊的回車鍵\n一起保存進字符串中,對,就是在常見的字符串結束標志\0之前增加了一個\n,因此需要進行特別處理。
在這個算法中,就是在句子逆序的時候將\n排除在逆序的范圍之外。然后對整個字符串先使用雙指針的方法進行整體逆序。然后再對單個單詞進行再次逆序,算法的關鍵點也就在這里。
但是通過觀察我們可以知道,原字符串中單詞是以單個空格為界限分開的,所以我們對單個單詞逆序前,需要先識別處一個單詞包含的內(nèi)容有哪些,也就是說當我們讀到空格或者是字符串結束符的時候,就說明一個單詞讀取完成,可以進行逆序操作。
標簽: