***用一个map来映射对应的字符。然后用getline()来获取一行的输入,注意在getline前面加上getchar()。
***简略说一下getline()函数:
getline()的原型是istream& getline ( istream &is , string &str , char delim );
- 第一个参数可以是cin。第二个参数必须是是string类型的字符串,接受输入内容。第三个参数是设置的结束字符,默认的是\n,你也可以将它设置为‘#’,那么一旦读到这个字符就会退出。第三个参数可以省略。
- getling是从标准输入设备读取相应的信息,然后返回给输入流cin。
***用gets()函数也可以读取一行字符带空格
#include <iostream>
#include <cstdio>
#include <Map>
#include <queue>
#include <cstdio>
#include <algoritHm>
#include <cstring>
#include <string>
#include <cmath>
#define long long
#define INF 0x3f3f3f
using namespace std;
map<char,char> M;
int main()
{
char c1,c2;
c1='A';
for(c1;c1<='Z';c1++){
c2=((c1-'A'-5)+26)%26+'A';
M[c1]=c2;
}
string str,begin,end;
while(cin>>begin && begin!="ENDOFINPUT")
{
getchar();
getline(cin,str,'\n');
cin >> end;
int i,j;
for(i=0;i<str.size();i++){
if('A'<=str[i] && str[i]<='Z')
str[i]=M[str[i]];
}
cout << str << endl;
str.clear();
}
return 0;
}