C語言遞歸實(shí)現(xiàn)字符串逆序的方式詳解
C語言實(shí)現(xiàn)字符串逆序,具體內(nèi)容如下所示:
一、迭代的方式實(shí)現(xiàn)
貼上代碼:迭代的方式實(shí)現(xiàn)
'//字符串逆序:不可用字符串操作函數(shù)' #include <stdio.h> void swap(char* ch1, char* ch2) '//交換兩個字符串' { char tmp = *ch1; *ch1 = *ch2; *ch2 = tmp; } int my_strlen(char* str) '//實(shí)現(xiàn)計算字符串字節(jié)數(shù)' { int count = 0; while (*str != '\0') { count++; str++; } return count; } void reverse_string(char* str) '//實(shí)現(xiàn)字符串逆序' { int left = 0; int right = my_strlen(str) - 1; while (left < right) { swap(str+left, str+right); left++; right--; } } int main() { char arr[] = "abcdefgh"; reverse_string(arr); printf("%s\n", arr); return 0; }
swap()函數(shù)還不如不定義,,這樣好寫一點(diǎn)。
二、遞歸的方式實(shí)現(xiàn)
貼上代碼:遞歸,思路挺難的,重點(diǎn)在于熟悉遞歸
//遞歸實(shí)現(xiàn)字符串逆序 void reverse_string(char* str) { if (*str != '\0') { char tmp = *str; int length = strlen(str); *str = *(str+ length - 1); *(str + length - 1) = '\0'; reverse_string(str + 1); *(str + length - 1) = tmp; } } int main() { char arr[] = "abcdefgh"; reverse_string(arr); printf("%s\n", arr); return 0; }
到此這篇關(guān)于C語言遞歸實(shí)現(xiàn)字符串逆序的文章就介紹到這了,更多相關(guān)C語言字符串逆序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺析C語言中strtol()函數(shù)與strtoul()函數(shù)的用法
這篇文章主要介紹了淺析C語言中strtol()函數(shù)與strtoul()函數(shù)的用法,注意其將字符串轉(zhuǎn)換成long型的區(qū)別,需要的朋友可以參考下2015-08-08C++11 <future>中std::promise 介紹
這篇文章主要介紹了C++11 <future>中std::promise 介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02C語言數(shù)據(jù)(整數(shù)、浮點(diǎn)數(shù))在內(nèi)存中的存儲
之前對c語言數(shù)據(jù)存儲一直不太明白,最近仔細(xì)研究了一番,所以下面這篇文章主要給大家介紹了關(guān)于C語言數(shù)據(jù)(整數(shù)、浮點(diǎn)數(shù))在內(nèi)存中存儲的相關(guān)資料,需要的朋友可以參考下2021-06-06