1.题目
在多数语言中,文本都是从左写到右。然而,有些语言中,文本是从右写到左。现在,你将来编写一个程序,把一段从左到右书写的文本自动转换为从右到左的文本。
2.输入
输入包含多个测试案例。第一行是一个整数,代表测试案例的数目。每个测试案例由一行组成,至多70个字符。但是,每行末尾的换行符不作为该测试案例的字符。
3.输出
对于每个测试案例,输出它的反转文本。
4.输入案例
3
Frankly, I don’t think we’ll make much
money out of this scheme.
madam I’am adam
5.输出案例
hcum ekam ll’ew kniht t’nod I ,ylknarF
.emechs siht fo tuo yenom
mada m’I madam
解答:
本题要求将一行文本从左到右完全翻转,即镜像。采用reverse算法,即可一次性将一个字符串string从头到尾翻转,这就是泛型编程的强大与方便之处。
本题采用cin.getline()进行 行输入,由于数据比较规范,所以,第一行的整数,可以忽略掉。程序只要一行一行往下读就行了,直到读不出数据就终止。这点,给我们一些启示,输入数据中的所有数据并不是都对我们有用,有些数据,完全可以忽略掉,这就是解题的灵活性。
//reverseTxt
#include <fstream>
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
//ifstream cin("aaa.txt");
string s;
char ss[80];
int n=0;
while(cin.getline(ss,80)){
if (n==0) n=1; //跳过第一行输入
else{
s=ss;
reverse(s.begin(),s.end());
cout<<s<<endl;
}
}
return 0;
}
效果如下: