【题目描述】
输入一串以‘!’结束的字符,按逆序输出。
【输入】
如题述。
【输出】
如题述。
【输入样例】
abc!
【输出样例】
cba
方法一:递归实现,利用栈LIFO的特性反向输出
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
void putcharbyid(int n);//定义函数:按索引逆序输出字符串 参数:索引
char str[10000];
int main() {
gets(str);//录入字符串
putcharbyid(0);
return 0;
}
void putcharbyid(int n) {
if(str[n]=='!') {//遇到叹号终止
return;
}
putcharbyid(n+1);//递归
cout<< str[n];//pop出栈
}
方法二:循环实现,变长数组
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
void reverse(char arr[]);//定义函数:逆序字符串 参数:字符串
int main() {
int size;
char str[size];//变长
gets(str);//录入字符串
reverse(str);
return 0;
}
void reverse(char arr[]) {
int len=strlen(arr);
for(int i=len-1; i>=0; i--) {
if(arr[i]!='!') {//遇到叹号终止
cout<< arr[i];
}
}
}