C语言递归实现字符串逆序的方式详解
时间:2022-04-29 10:08:52|栏目:C代码|点击: 次
C语言实现字符串逆序,具体内容如下所示:
一、迭代的方式实现
贴上代码:迭代的方式实现
'//字符串逆序:不可用字符串操作函数' #include <stdio.h> void swap(char* ch1, char* ch2) '//交换两个字符串' { char tmp = *ch1; *ch1 = *ch2; *ch2 = tmp; } int my_strlen(char* str) '//实现计算字符串字节数' { int count = 0; while (*str != '\0') { count++; str++; } return count; } void reverse_string(char* str) '//实现字符串逆序' { 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()函数还不如不定义,,这样好写一点。
二、递归的方式实现
贴上代码:递归,思路挺难的,重点在于熟悉递归
//递归实现字符串逆序 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; }