颠倒字序

颠倒字序

颠倒字序

—-来源:ACM程序设计与分析

问题描述:
在许多语言中,文本是从左到右书写的。但在某些情况下,特别是在加密技术领域中,文本中的每个词是从右到左书写的,而词在文本中的顺序不变。现在要求编写一个程序对给定的文本改变词的书写方式。

输入:
输入文件有多个测试数据。第1行是一个整数n,它是测试数据的组数。接下来有n行,每一行是一组测试数据。注意每一行的换行符不作为改行的文本部分。句子中的符号“.”、“!”、“,”、“-”、“:”、“;”、“?”和引号“””是作为标点符号的,应该保持这些符号原来的次序。

输出:
对每组测试数据,以逆序的方式输出这组数据中的词。

输入样例 输出样例

2
Me too. eM oot.
Madam, I’m adam. madaM, m’I mada.
[cpp]

#include <iostream>
#include <string>
using namespace std;
int main()
{
int i,j,n;string s,d;cin>>n;
cin.ignore(1);
while(n–)
{
getline(cin,s);d=””;
for(i=0;i<s.size();i++)
{
if((s[i]>=’a’&&s[i]<=’z’)||(s[i]>=’A’&&s[i]<=’Z’)||s[i]==”’)
d+=s[i];
else {
for(j=d.size()-1;j>=0;j–) cout<<d[j];
cout<<s[i];d=””;
}
}
for(j=d.size()-1;j>=0;j–) cout<<d[j];
cout<<endl;
}
return 0;
}
[/cpp]