这篇文章主要介绍了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;
}
到此这篇关于C语言递归实现字符串逆序的文章就介绍到这了,更多相关C语言字符串逆序内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
沃梦达教程
本文标题为:C语言递归实现字符串逆序的方式详解
基础教程推荐
猜你喜欢
- C++详细实现完整图书管理功能 2023-04-04
- C++中的atoi 函数简介 2023-01-05
- C语言基础全局变量与局部变量教程详解 2022-12-31
- 一文带你了解C++中的字符替换方法 2023-07-20
- C语言 structural body结构体详解用法 2022-12-06
- 详解c# Emit技术 2023-03-25
- 如何C++使用模板特化功能 2023-03-05
- C/C++编程中const的使用详解 2023-03-26
- C利用语言实现数据结构之队列 2022-11-22
- C++使用easyX库实现三星环绕效果流程详解 2023-06-26