C語言遞歸實現(xiàn)字符串逆序的方式詳解
更新時間:2021年10月12日 11:06:29 作者:冷雨GieGie
這篇文章主要介紹了C語言遞歸實現(xiàn)字符串逆序的方式詳解,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
C語言實現(xiàn)字符串逆序,具體內(nèi)容如下所示:
一、迭代的方式實現(xiàn)
貼上代碼:迭代的方式實現(xiàn)
'//字符串逆序:不可用字符串操作函數(shù)'
#include <stdio.h>
void swap(char* ch1, char* ch2) '//交換兩個字符串'
{
char tmp = *ch1;
*ch1 = *ch2;
*ch2 = tmp;
}
int my_strlen(char* str) '//實現(xiàn)計算字符串字節(jié)數(shù)'
{
int count = 0;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
void reverse_string(char* str) '//實現(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ù)還不如不定義,,這樣好寫一點。

二、遞歸的方式實現(xiàn)
貼上代碼:遞歸,思路挺難的,重點在于熟悉遞歸
//遞歸實現(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語言遞歸實現(xiàn)字符串逆序的文章就介紹到這了,更多相關(guān)C語言字符串逆序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實現(xiàn)插入排序?qū)φ麛?shù)數(shù)組排序
這篇文章主要為大家詳細介紹了C++實現(xiàn)插入排序?qū)φ麛?shù)數(shù)組排序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-05-05
C語言實現(xiàn)數(shù)組的循環(huán)移位的方法示例
這篇文章主要介紹了C語言實現(xiàn)數(shù)組的循環(huán)移位的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-08-08

