免费网站建设绑定域名,网站502错误什么原因,番禺人才网招聘信息,医疗公司网站建设项目背景目录
一、题目要求
二、解题步骤
①递归解法
思路
完整代码
②循环解法
思路
完整代码 嗨大家好#xff01;
本篇博客中的这道例题#xff0c;是我自己在一次考试中写错的一道题
这篇博客包含了这道题的几种解法#xff0c;以及一些我自己对这道题的看法#xff…目录
一、题目要求
二、解题步骤
①递归解法
思路
完整代码
②循环解法
思路
完整代码 嗨大家好
本篇博客中的这道例题是我自己在一次考试中写错的一道题
这篇博客包含了这道题的几种解法以及一些我自己对这道题的看法希望能够帮到大家 一、题目要求 编写一个函数 reverse_string(char * string)
实现将参数字符串中的字符反向排列不是逆序打印。
要求不能使用C函数库中的字符串操作函数。
比如:
char arr[] abcdef;
逆序之后数组的内容变成fedcba 二、解题步骤 这道题分为两种实现方法一是递归实现二是循环实现
①递归解法
思路 对于字符串“abcdefg”递归实现的大概原理 1. 交换a和g 2. 以递归的方式逆置源字符串的剩余部分剩余部分可以看成一个有效的字符串再以类似的方式逆置
完整代码
void reverse_string(char* arr)
{int len strlen(arr);char tmp *arr;*arr *(arrlen-1);*(arrlen-1) \0;if(strlen(arr1)2)reverse_string(arr1);*(arrlen-1) tmp;
}②循环解法
思路 1. 给两个指针left放在字符串左侧right放在最后一个有效字符位置 2. 交换两个指针位置上的字符 3. left指针往后走right指针往前走只要两个指针没有相遇继续2两个指针相遇后逆置结束
完整代码
void reverse_string(char* arr)
{char *left arr;char *right arrstrlen(arr)-1;while(leftright){char tmp *left;*left *right;*right tmp;left;right--;}
} 不难看出循环写法理解起来比较容易而递归写法虽然较难被想到但整体会更简洁
对于刚入门的同学多积累一种办法才是最重要的学到后期再去考虑要用哪种更省内存、效率更高的写法 以上就是本篇博客的全部内容啦如有不足之处还请各位指出期待能和各位一起进步