这题网上很多思路都把单个字符作为对象来处理,这样会很麻烦。我参考了柳神的解答。(不愧是柳神呀)更好的办法是将字符串作为对象直接读入读出。
因为c++关于string输入输出的方法是:(引自c++ primer)
在执行读取操作时,string对象会自动忽略开头的空白(即空格符、换行符、制表符等)并从第一个真正的字符开始读起,直到遇见下一处空白为止。
代码如下:
#include <iostream>
#include <string>
using namespace std;
int main(){
string s;
string stack[40];//最多有40个string,用栈实现逆序输出
int top=-1;
while(cin>>s){
stack[++top]=s;
}
while(top>0){
cout<<stack[top--]<<' ';//除最后一个string外都要跟一个空格符
}
cout<<stack[top];
return 0;
}