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