我在C语言中使用递归反转字符串的方法

My way of reversing a String using recursion in C language

我是新来的,也是编程领域的新手。
我被赋予了一项任务,即使用递归来反转字符串,并为此构建了一个程序。但我不确定它是否使用递归?这是代码:

#include <stdio.h>
#include <string.h>

void reverse(char, long);

int main(){

  char i[100];
  long c;

  gets(i);
  c = strlen(i);

  reverse(i,c);
  return 0;
}

void reverse(char x[100], long y){

  printf("%c", x[y-1]);
  if (y>=0) {
      reverse(x, y-1);
  }
}

我只想知道这个程序是否使用递归来反转字符串?

调用自身的方法一般认为是递归的,所以你的代码确实是递归的

一个直接的答案是肯定的,你的程序正在使用递归。由于函数正在调用自身。

但是,我还想指出,您的程序并没有反转字符串,它只是打印字符串的顺序是相反的。

您可以通过 this 答案来了解如何实际反转字符串,而不仅仅是以相反的顺序打印它。

注:

不要使用 gets(),它已被弃用。请改用 fgets()