方法一:使用while循环依次让左右对称的字符进行交换,从而实现逆序
char ch[] = "abcdef";
int sz = strlen(ch);
int left = 0;
int right = sz-1;
while(left<right)
{
char tmp = ch[left];
ch[left] = ch[right];
ch[right] = tmp;
left++;
right--;
}
方法二:在方法一的基础上修改为函数形式,调用时输入数组名即可实现逆序
void reverse(char arr[])
{
int sz = strlen(arr);
int left = 0;
int right = sz-1;
while(left<right)
{
char tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
}
方法三:使用函数递归思想(该方法用于发散思维,平常做项目并不一定会用到)
void reverse(char* str)
{
char tmp =*str;//创建一个临时变量用来储存较左边的值
int len = strlen(str);//计算字符串的长度
*str = *(str + len - 1);//先把较左边的值进行替换
*(str + len - 1)='\0';//把右边的字符替换为\0
if(strlen(str+1)>=2)//判断去掉左右两端的字符后字符串是否可以继续交换
reverse(str+1);
*(str + len - 1)=tmp;//最终把较右边的值替换回去
}