做健身網(wǎng)站東莞網(wǎng)站制作
以下是題目:
這個題中有三個點, 一個是將非字母的字符轉(zhuǎn)換為空格, 第二是如果有兩個連續(xù)的空格, 那么就可以將這兩個連續(xù)的空格變成一個空格。 第三個點就是讓單詞倒排。
那么我們就可以將這三個點分別封裝成三個函數(shù)。
還有就是, 三個函數(shù)執(zhí)行順序的問題。 這里需要想到連續(xù)的空格變成一個空格函數(shù)應(yīng)該是放在非字符字符變成空格之后的。 然后單詞倒排放在最后可以完成操作。?
接下來實現(xiàn)函數(shù):?
空格轉(zhuǎn)換
首先先實現(xiàn)空格轉(zhuǎn)換的函數(shù)。?
?這里的形參是傳過來的字符串的首地址, 然后函數(shù)內(nèi)容是對整個字符串進行遍歷, 只要不是字母, 那么這個字符就會變成空格。?
減少空格
接下來實現(xiàn)空格的減少。
這個實現(xiàn)的方式有點類似于strstr的實現(xiàn)方式(strstr函數(shù)實現(xiàn)方式忘記可以重新復(fù)習(xí):字符串函數(shù)的模擬實現(xiàn)-CSDN博客), 只要指針指向了空格,這個指針不要動, 作為記憶保存點, 然后重新創(chuàng)建一個指針往下遍歷, 直到碰到不是空格的字符就停下來。 然后將中間的空格全部被后面的字符覆蓋。
實現(xiàn)過程:
代碼如下?
?單詞倒排
單詞倒排有一種神奇的方式, 如下圖:
?第一步是將各個單詞分別進行倒置, 第二步是將整個字符串倒置, 然后單詞就倒排了。代碼如下: