法一:
使用递归逆序输出字符串(这个可能比较难理解)
这里我自己写了一个计算字符串长度的函数,你们写的时候也可以直接使用库函数里面的strlen()
函数代码:
//计算字符串长度
int my_strlen(char* str)
{
int count = 0;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
//使用递归逆序输出字符串
void reverse_char(char* str) {
//找到第一个字符
char temp = *str;
//字符串长度
int len = my_strlen(str);
//把最后一个字符交换到第一个
*str = *(str + len - 1);
//将最后一个字符位置暂时先赋值为\0,以便更好进行递归计算
*(str + len - 1) = '\0';
if (my_strlen(str+1)>=2)
{
reverse_char(str+1);
}
//递归完一次,就最后一个字符位置赋值为temp
*(str + len - 1) = temp;
}
法二:
使用while循环实现逆序输出字符串(这个方法比较常用)
函数代码:
//使用while循环实现逆序输出字符串
void reverse_while(char* str) {
int left = 0;
int right = my_strlen(str) - 1;
while (left<right)
{
char temp = str[left];
str[left] = str[right];
str[right] = temp;
left++;
right--;
}
}