从易到难编写C++程序,(1)个人解答:把键盘输入的字符串逆序输出。

/*Copyright (c) 2007,九天雁翎
* All rights reserved.
* 从易到难编写C++程序,(1)问题:把键盘输入的字符串逆序输出。
* 完成日期:2007年5月31日
*/
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iomanip>
using namespace std;
typedef vector<string>::const_iterator c_iter;
int main()
{
vector<string> svec; //因为要识别空格,还要换行,光一个string是不行的
string str;
cout<<"Please input the string you want to reverse:"<<endl;

//开始想以eof为结束,后来后悔了,以'!'为结束,
//开始我用cin作输入,后来后悔了,还是getline好
while(true)
{
getline(cin, str);
if(str.empty()) //假如输入空格也不应该算错误
{
svec.push_back(str);
continue;
}
if(*(str.end() - 1) == '!') //判断什么时候结束
{
str.erase(str.end() - 1); //去掉结束符号
reverse(str.begin(), str.end()); //利用标准库的算法逆序str
svec.push_back(str);
break;
}
reverse(str.begin(), str.end()); //利用标准库的算法逆序str
svec.push_back(str);
}//end of while
reverse(svec.begin(), svec.end()); //这一步可以在下一步用反向迭代器替换
for(c_iter it = svec.begin(); //输出svec
it != svec.end();++it)
{
cout<<*it<<endl;
}
return 0;
}
 
//这是我个人见过最笨的方法,仅仅作为一种个人学习的历史保留,勿学,好的解答参考同题解答(2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值