c - 递归变量
问题描述
我刚刚开始使用递归,我想将一个在函数中声明的变量传递给 main。
这是帮助您更好地理解它的代码:
#include <stdio.h>
void InvertString(char string[200], char *inverted) {
if (*string != '\0') {
InvertString(string+1, inverted);
}
*inverted = *string;
}
int main(int argc, char const *argv[]) {
char string[200];
char inverted;
int i;
printf("Give me a phrase: ");
gets(string);
printf("Tu frase invertida es: ");
InviertString(string, &inverted);
printf("%c", inverted); /* Here I'm tring to print "inverted", but i don't know how to pass that variable to the main */
printf("\n");
}
谢谢您的帮助。
那这个呢?
#include <stdio.h>
#include <string.h>
void InvierteFrase(char cadena[200]) {
if (*cadena != '\0') {
InvierteFrase(cadena+1);
}
printf("%c", *cadena);
}
int main(int argc, char const *argv[]) {
char cadena[200];
char invertido[200];
int i;
printf("Dame una frase: ");
gets(cadena);
printf("Tu frase invertida es: ");
InvierteFrase(cadena);
printf("%c", &cadena);
printf("\n");
}
解决方案
解决了:
#include <stdio.h>
#include <string.h>
void InvierteFrase(char cadena[200]) {
if (*cadena != '\0') {
InvierteFrase(cadena+1);
}
printf("%c", *cadena);
}
int main(int argc, char const *argv[]) {
char cadena[200];
char invertido[200];
int i;
printf("Dame una frase: ");
gets(cadena);
printf("Tu frase invertida es: ");
InvierteFrase(cadena);
for(i=0;i>=strlen(cadena);i++){
printf("%c", cadena[i]);
}
printf("\n");
}
推荐阅读
- sql - 在case en multi velues返回的地方
- java - java中文本文件中的段落列表
- c# - 驱动我的小车的多选列表。试图让一个在其他组件列表中工作
- javascript - 允许在从 UI 端进行 Post 请求时在 url 中发送特殊字符
- excel - 在 Excel 中输出多个 VLookup 值
- prestashop - 退款后禁用优惠券
- combobox - 从组合框中选择和使用值的代码
- python - “全局”变量赋值的内部工作原理
- pytorch - PyTorch:带有 datasets.ImageFolder 的 Dogs vs Cat 数据集
- graphql - CraftCMS GraphQL 使用 next 和 prev 接口