【原创】逆序输出字符(stack)
//逆序输出
#include <iostream>
#include <stack>
#include <vector>
using namespace std;
int reverse(int num);
int reverse(stack<char,vector<char> > a);
int main()
{
int num=123456789;
char c;
stack<char,vector<char> > a; //指定stack采用vector为容器类型,默认为deque
cout <<num <<endl;
cout <<reverse(num) <<endl;
cout <<"请输入字符串(以#结束):" <<endl;
do
{
cin >>c;
if(c!='#') a.push(c); //将输入的字符顺序压入栈
}while(c!='#');
reverse(a);
system("pause");
return 0;
}
//将整数反转并返回
int reverse(int num)
{
int i=0;
while(true)
{
i=i*10+num%10;
num=num/10;
if(num==0)break;
}
return i;
}
//逆序输出字符 先进后出,后进先出
int reverse(stack<char,vector<char> > a)
{
while(!a.empty())
{
cout <<a.top(); //获取栈顶元素
a.pop(); //弹出
}
cout <<endl;
return 0;
}