反向输出字符串的方法很多,实现也比较简单。下面是一种简单的用递归实现的反向输出字符串的实现。
void Print()
{
char temp;
if((temp=getchar())!='#')
Print();//递归
if(temp!='#')
cout<<temp;
}
int main()
{
cout<<"请输入字符串以#结束:"<<endl;
Print();
cout<<endl;
return 0;
}
反向输出字符串的方法很多,实现也比较简单。下面是一种简单的用递归实现的反向输出字符串的实现。
void Print()
{
char temp;
if((temp=getchar())!='#')
Print();//递归
if(temp!='#')
cout<<temp;
}
int main()
{
cout<<"请输入字符串以#结束:"<<endl;
Print();
cout<<endl;
return 0;
}
转载于:https://www.cnblogs.com/landy126/archive/2012/03/02/2376742.html
使用VS2019
ISO C++14 标准 (/std:c++14)
利用递归函数调用方式,
将所输入的5个字符,以相反顺序打印出来。
//利用递归函数调用方式,
//将所输入的5个字符,以相反顺序打印出来。
#include <stdio.h>
int main()
{
printf("请输入5个字符:\n");
//申明函数
void Reverse(int);
int num = 5;
//调用取反函数
Reverse(num);
return 0;
}
//定义取反的函数
//输入5个字符,然后反向输出
//理解递归,先递进,后回归的一个过程;
void Reverse(int n){
char str;
if (n == 1) {
//输入一个字符
scanf_s("%c", &str);
//开始反向回归
printf("\n相反顺序输出结果:\n");
//输出单个字符
printf("%c",str);
}else {
scanf_s("%c", &str);
//进行递进
Reverse(n - 1);
//回归后执行如下
printf("*");
printf("%c", str);
}
}
#include <stdio.h>
void Input()
{
int ch;
if((ch=getchar())!='!')
Input();
else
printf("反向输出:");
putchar(ch);
}
int main(void)
{
printf("请输入一个带感叹号字符串:");
Input();
printf("\n");
return 0;
}
递规反向输出字符串的例子,可谓是反序的经典例程
/*
递规反向输出字符串
*/
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
#include <assert.h>
using namespace std;
void inverse(char *p)
{
if (*p == '\0') return;
else
{
inverse(p + 1);//重点
printf("%c", *p);
}
}
int main()
{
char str[] = "!1ab sd9";
inverse(str);
system("pause");
return 0;
}
对于文件操作
/*
递规反向输出字符串
文件为逐行倒叙
*/
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
#include <assert.h>
using namespace std;
void inverse(FILE *fread,FILE*fwrite)
{
char buf[1024] = { 0 };
if (!fgets(buf, sizeof(buf), fread)) return;
inverse(fread, fwrite);
fputs(buf, fwrite); //仍是循环后输出
}
int main()
{
FILE *fr = NULL;
FILE *fw = NULL;
fopen_s(&fr, "f1.txt", "r");
fopen_s(&fw, "f2.txt", "w");
if (fr == NULL | fw == NULL) return -1;
inverse(fr, fw);
fclose(fr);
fclose(fw);
cout << "Done" << endl;
system("pause");
return 0;
}