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