C++ 字母表加密程序

C++ 字母表加密程序,c++,encryption,C++,Encryption,嗨,我正在做一个加密程序。程序应采用用户输入的字母,并将其替换为字母表下11处的对应字母。例如,如果用户输入“joe”,则程序应输出“uzp” 我目前的代码可以做到这一点,但它不能识别空格,程序应该围绕字母表运行。所以“Y”变成“J”,而“Z”变成“K”等等。有人知道我如何解决这个问题吗 void encrypt(std::string &e); int main() { string nameAttempt; cout << "Enter your n

嗨,我正在做一个加密程序。程序应采用用户输入的字母,并将其替换为字母表下11处的对应字母。例如,如果用户输入“joe”,则程序应输出“uzp”

我目前的代码可以做到这一点,但它不能识别空格,程序应该围绕字母表运行。所以“Y”变成“J”,而“Z”变成“K”等等。有人知道我如何解决这个问题吗

void encrypt(std::string &e);

int main() {

    string nameAttempt;

    cout << "Enter your name to be Encrypted: ";
         cin >> nameAttempt;


    cout << "Original string is: " << nameAttempt << endl;
         encrypt( nameAttempt );

    cout << "Encrypted string is: " << nameAttempt << endl;


system("pause");
return 0;
}


void encrypt (std::string &e) {
     const char* tempCharArray = e.c_str();
     for( int i=0; i<e.size(); ++i )
     e[i] = tempCharArray[i]+11;  
     } // 
void加密(std::string&e);
int main(){
字符串名称尝试;
cout>命名尝试;

cout假设您想要:

  • 用小写字母替换小写字母
  • 用大写字母替换大写字母
  • 保留空格和任何其他非字母字符

void加密(std::string&e)
{
int size=e.size();

对于(int i=0;i你可以这样做:

char _character='X';

int _value=static_cast<int>(_character);

if(_value!=32)//not space
{

    int _newValue=((_value+11)%90);

    (_newValue<65)?_newValue+=65:_newValue+=0;

    char _newCharacter=static_cast<char>(_newValue);
}
char\u character='X';
int _值=静态施法(_字符);
if(_值!=32)//非空格
{
int _newValue=(_value+11)%90);

(\u newvalue不重要,但此密码有一个特定的名称:它不环绕字母表。它也不识别空格。@user3420131:1.它环绕字母表。2.您在问题中没有提到要对空格执行什么操作,因此我假设您希望按原样保留空格(正如我在答案开头提到的!!!).你为什么不把最后两个条件像前两个一样折叠起来呢?这并不是说编译器会在意…当我在输入r时使用这段代码,例如,我得到了小心脏作为输出。它在一个空格后会停止加密任何内容。抱歉,我不想这样做rude@user3420131:没问题,我在发布代码后对代码做了一点小改动(在你发表上述评论之前),所以也许你应该再试一次;它对我有用。。。
char _character='X';

int _value=static_cast<int>(_character);

if(_value!=32)//not space
{

    int _newValue=((_value+11)%90);

    (_newValue<65)?_newValue+=65:_newValue+=0;

    char _newCharacter=static_cast<char>(_newValue);
}