簡體   English   中英

如何將郵件轉換為密文?

[英]how to convert message to cipher message?

#include <iostream>
using namespace std;

int main()
{
    string message;
    cout << "Ahlan ya user ya habibi." <<endl;

    cout <<"what do you like to do today?" <<endl;
    cout <<"please enter the message:" <<endl;
    getline(cin,message);

    for(int i=0;i<message.size();i++)
    {
        if(string(message[i]==32))
        {
            cout<<char(message[i]);
        }
        else if(string( message[i])>=110)
        {
            int x = int(message[i])-13;
            cout<<char(x);
        }
        else
        {
            int x = string (message[i])+13;
            cout<<char(x);
        }
    }
    return 0;
}

E:\\ my programe \\ quiz \\ main.cpp | 20 |錯誤:沒有匹配的函數調用'std :: __ cxx11 :: basic_string <char> :: basic_string(char&)'|

E:\\ my programe \\ quiz \\ main.cpp | 20 |錯誤:從'char'到'const char *'的無效轉換[-fpermissive] |

E:\\ my programe \\ quiz \\ main.cpp | 27 |錯誤:沒有匹配的函數調用'std :: __ cxx11 :: basic_string <char> :: basic_string(char&)'|

E:\\ my programe \\ quiz \\ main.cpp | 27 |錯誤:從'char'到'const char *'的無效轉換[-fpermissive] |

std::string::operator[]返回char&引用。 您正在嘗試構造具有單個char值作為輸入的臨時std::string對象,但是std::string沒有任何僅將單個char作為輸入的構造函數。 這就是為什么您會出錯。

即使可以從單個char構造std::string ,也無論如何都不能將std::string與整數進行比較。

您根本不需要所有這些string() (和char() )強制轉換(順便說一句,您的第一個string()強制轉換始終是格式錯誤的)。 char是數字類型。 您可以比較一個char直接值為整數,並添加/直接從減和整數/ char值,以產生新的char值。

嘗試以下方法:

#include <iostream>
using namespace std;

int main()
{
    string message;
    cout << "Ahlan ya user ya habibi." << endl;

    cout << "what do you like to do today?" << endl;
    cout << "please enter the message:" << endl;
    getline(cin, message);

    for(int i = 0; i < message.size(); i++)
    {
        if (message[i] == 32)
        {
            cout << message[i];
        }
        else if (message[i] >= 110)
        {
            char x = message[i] - 13;
            cout << x;
        }
        else
        {
            char x = message[i] + 13;
            cout << x;
        }
    }
    return 0;
}

現場演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM