递归函数调用方式,将所输入的5个字符,以相反顺序打印出来,用C++
时间: 2023-04-09 08:04:23 浏览: 239
当然,我可以回答这个问题。以下是一个递归函数的示例代码,可以将输入的5个字符以相反顺序打印出来:
```c
#include <stdio.h>
void reverse_print(char *str) {
if (*str) {
reverse_print(str + 1);
putchar(*str);
}
}
int main() {
char str[6];
printf("请输入5个字符:");
scanf("%s", str);
reverse_print(str);
return 0;
}
```
输入5个字符后,程序将会递归调用 `reverse_print` 函数,将字符从后往前打印出来。
相关问题
利用C++语言,递归函数调用方式,将所输入的5个字符,以相反顺序打印出来
可以使用以下代码实现:
```c
#include <stdio.h>
void reverse_print(char* str) {
if (*str == '\0') {
return;
}
reverse_print(str + 1);
printf("%c", *str);
}
int main() {
char str[6];
printf("请输入5个字符:");
scanf("%s", str);
reverse_print(str);
printf("\n");
return 0;
}
```
这段代码使用递归的方式,将输入的字符串从后往前打印出来。
使用C++语言实现以下功能“建立一个字符数组str[100],建立一个函数void input(char *p)从console输入一个字符串到数组中。编写一个递归调用的函数reverse(char *p),将p所指向的字符串翻转。”
好的,我很乐意回答你的问题。
以下是用 C++ 实现上述功能的代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void input(char *p);
void reverse(char *p);
int main() {
char str[100];
input(str);
reverse(str);
cout << "The reverse string is: " << str << endl;
return 0;
}
void input(char *p) {
cout << "Please enter a string: ";
cin.getline(p, 100);
}
void reverse(char *p) {
static int i = 0, j = strlen(p) - 1;
if (i < j) {
char temp = p[i];
p[i] = p[j];
p[j] = temp;
i++;
j--;
reverse(p);
}
}
```
代码中,`input` 函数用于从控制台输入一个字符串,存储到 `str` 字符数组中。`reverse` 函数使用递归的方式将 `p` 所指向的字符串翻转。具体来说,`reverse` 函数使用两个静态变量 `i` 和 `j` 分别表示字符串的起始位置和结束位置,每次将 `i` 所指向的字符和 `j` 所指向的字符交换位置,然后递归调用 `reverse` 函数处理剩下的子串。当 `i` 大于等于 `j` 时,递归结束,字符串翻转完成。
希望这个代码能够帮助到你。如果你有任何问题或者需要进一步的帮助,请随时问我。
阅读全文