写一个程序让字符串中的字符反向排列。例如char arr[]="abcdef";逆序过后数组的内容变成fedcba
方法一(迭代):要实现abcdef的逆序,我只需要把a和b交换位置,b和d交换位置,c和d交换位置。
也就是说把以一个元素和倒数第一个元素交换,第二个元素和倒数第二个元素交换,第三个元素和倒数第三个元素交换......
#define _CRT_SECURE_NO_WARNINGS #include#include int main() { char arr[] = "abcdef"; int left = 0; int right = strlen(arr) - 1;//求字符串的长度,-1为最后一个元素的下标 while (left < right) { char tmp = arr[right]; arr[right] = arr[left]; arr[left] = tmp; left++; right--; } printf("%sn", arr); return 0; }
方法二(递归) :要实现abcdef的逆序,我们只需要写一个函数它能够把指定的俩个元素交换,再运用递归的思想。把abcdef的逆序拆分先把a,b传给函数,实现交换,再把be传给函数,实现交换,以此类推……
#define _CRT_SECURE_NO_WARNINGS #include#include reverse(char arr[],int left,int right) { char tmp = left; left = right; right = tmp; if (left < right) reverse(arr, left + 1, right - 1); } int main() { char arr[] = "abcdef"; int left = 0; int right = strlen(arr); reverse(arr,left,right); printf("%sn", arr); }



