注册 登录
编程论坛 C++教室

恺撒加密

zsy142857 发布于 2017-07-04 19:37, 2447 次点击
#include<iostream>
using namespace std;
char a,b,c;
int main()
{
    cin>>a>>b>>c;
    int d;
    d=a;
    int e;
    e=b;
    int f;
    f=c;
    cout<<char(d+1)<<char(e+1)<<char(f+1)<<endl;
    return 0;
}
怎么将这个程序改一下,使输入x y z变成y z a
4 回复
#2
zsy1428572017-07-04 19:44
求大神们看一看吧!
#3
ehszt2017-07-04 19:50
#include<iostream>
 using namespace std;
 char code(char a)
 {
    (a=='z')?a-=25:a++;   
    return a;
 }
 int main()
 {
    char a,b,c;
     cin>>a>>b>>c;
     cout<<code(a)<<" "<<code(b)<<" "<<code(c)<<endl;
     return 0;
 }
#4
rjsp2017-07-05 08:29
假如你能确保输入的一定是小写字母
程序代码:
char caesar_cipher( char c )
{
    return 'a' + (c-'a'+1)%26;
}

#include <iostream>
using namespace std;

int main( void )
{
    char a,b,c;
    cin >> a >> b >> c;
    cout << caesar_cipher(a) << caesar_cipher(b) << caesar_cipher(c) << endl;

    return 0;
}

否则
程序代码:
char caesar_cipher( char c )
{
    if( c>='A' && c<='Z' )
        return 'A' + (c-'A'+1)%26;

    if( c>='a' && c<='z' )
        return 'a' + (c-'a'+1)%26;

    return c;
}

#include <iostream>
using namespace std;

int main( void )
{
    char a,b,c;
    if( cin>>a>>b>>c )
        cout << caesar_cipher(a) << caesar_cipher(b) << caesar_cipher(c) << endl;

    return 0;
}
#5
zsy1428572017-07-13 20:49
谢谢!
1