当前位置:   article > 正文

C语言三种方法逆序输出字符串_字符串逆序输出c语言

字符串逆序输出c语言

两种递归:

  1. #include <stdio.h>
  2. #include <string.h>
  3. void reverse(char* str) {
  4. char tmp = *str;
  5. int len = strlen(str);
  6. *str = *((len - 1) + str);
  7. *((len - 1) + str) = '\0';
  8. if (strlen(str + 1) >= 2) {
  9. reverse(str + 1);
  10. }
  11. *((len - 1) + str) = tmp;
  12. }
  13. int main() {
  14. char arr[] = "abcdef";
  15. reverse(arr);
  16. printf("%s", arr);
  17. return 0;
  18. }
  1. #include <stdio.h>
  2. #include <string.h>
  3. void reverse(char arr[], int left, int right) {
  4. char tmp = arr[left];
  5. arr[left] = arr[right];
  6. arr[right] = tmp;
  7. if(left<right)
  8. reverse(arr, left + 1, right - 1);
  9. }
  10. int main() {
  11. char arr[] = "abcdef";
  12. int left = 0;
  13. int right = strlen(arr)-1;
  14. reverse(arr, left, right);
  15. printf("%s", arr);
  16. return 0;
  17. }

一种非递归

  1. #include <stdio.h>
  2. #include <string.h>
  3. void reverse(char arr[],int left,int right) {
  4. while (left < right) {
  5. char tmp = arr[left];
  6. arr[left] = arr[right];
  7. arr[right] = tmp;
  8. left++;
  9. right--;
  10. }
  11. }
  12. int main() {
  13. char arr[] = "abcdef";
  14. int left = 0;
  15. int right = strlen(arr)-1;
  16. reverse(arr, left, right);
  17. printf("%s", arr);
  18. return 0;
  19. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/643652
推荐阅读
相关标签
  

闽ICP备14008679号