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); //gfedcbareturn 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); //gfedcbareturn 0;
}
运行结果: