C语言显示字符串倒序
倒序字符串的方法很多,这里给出常见的两种
1.倒序字符串指针法
void reverse_string(char *arr)
{
int len = strlen(arr);
char* left = arr; //指向头部的指针
char* right = arr + (len - 1); //指向尾部的指针
char temp;
while(left < right)
{ //使用中间变量进行两个字符的交换
temp = *left;
*left = *right;
*right = temp;
left++; //头指针往后走
right--; //尾指针往前走
}
}
int main()
{
char arr[] = "abcdefg";
reverse_string(arr);
printf("%s", arr); //gfedcba
return 0;
}
2.倒序字符串递归法(两端的字符交换加上中间字符串的逆序)
#include <stdio.h>
#include <string.h>
void reverse_string(char* arr)
{
int len = strlen(arr);
char temp = *arr; //1.先将首字符放到中间变量
*arr = *(arr + len - 1); //2.尾字符放到首字符的位置
*(arr + len - 1) = '\0'; //3.把'\0'放到尾字符的位置,方便递归时方便计算字符串长度
if (strlen(arr+1) >= 2)
{
reverse_string(arr + 1);/*4.首指针++,指向第二个字符,使用递归,如果剩余字符串的长度小于2,因为一个字符就没有交换的必要,就退出递归*/
}
*(arr + len - 1) = temp; //5.最后把中间变量中存的原来首个字符放到尾部
}
int main()
{
char arr[] = "abcdefg";
reverse_string(arr);
printf("%s", arr); //gfedcba
return 0;
}
运行结果:
更多推荐
C语言实现字符串倒序
发布评论