C語言 字串翻轉的遞迴方法

2021-09-09 06:08:50 字數 628 閱讀 5240

編寫乙個函式 reverse_string(char * string)(遞迴實現)

//實現:將引數字串中的字元反向排列。

//要求:不能使用c函式庫中的字串操作函式。

#include

#include

#include

char* reverse_string(char*str)

return str;

}int main()

字串的反轉的遞迴方法需要拋棄掉,平常思路下的反轉方式。

首先我們整理下思路,要將字串反轉,需要將前面的字元調到後面去;

首先,我們將字串的第乙個字元變成最後乙個字元,並將第乙個字元存起來,將最後乙個字元變成『\0』;

比如:將abcd反轉

第一次遞迴:abcd------>dbc'\0',將a存在tmp中,進行遞迴函式f(str+1)變成dbc'\0';

第二次遞迴:dbc'\0'------->dc'\0''\0',將b存在了tmp中,因為遞迴時傳入的引數是str+1,所以首元素變成了b;

第三次遞迴:dc'\0''\0'------->d'\0'\0''\0',將c存在了tmp中。

因為接下來不滿足if條件,所以遞迴開始返回,首先返回d然後依次返回cba。

C語言遞迴實現字串翻轉

一,c語言遞迴實現字串逆轉 簡單的實現 abc 的逆轉 函式原型 void reverse char value,char result char value為待逆序字串 char result為存放的逆序結果 1,首先判斷是否value是否為空和value是否是字串結尾條件 條件不滿足則retur...

翻轉字串 翻轉單詞字串

將一句話裡面的單詞進行倒置,標點符號不倒換。比如一句話 i come from china.倒換後變成 china.from come i 解析 解決該問題可以分為兩步,第一步全盤置換為 anihc morf emoc i 第二部對每個單詞進行逐步翻轉,如果不是空格,則開始翻轉單詞。具體 如下 in...

翻轉字串裡的單詞 C語言

問題 給定乙個字串,逐個翻轉字串中的每個單詞。示例 輸入 the sky is blue 輸出 blue is sky the 說明 無空格字元構成乙個單詞。輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含乙個。inclu...