编码句子



我试图在c 中编码一个句子,而我回来的唯一加密是句子中单词的第一个字母,而不是句子中的所有字母。这是我的代码,我获得的输出低于我的代码。在下面是我应该拥有的输出。

#include <iostream>
#include <string>
using namespace std;
int main ()
{
 int multi;
 int adder;
char words;
cout << "What is your multiplier?" << endl;
cin >> multi;
cout << "What is your adder?" << endl;
cin >> adder;
cout << "Enter in a sentence you want encrypted" << endl;
cin >> words;

cout << "Encrypted: " << endl;
cout << (int)words * multi + adder << endl;
return 0;}

我的输出:

您的乘数是什么?

4

您的加法器是什么?

3

输入要加密的句子

管家做到了

加密:

339

这是我应该拥有的代码:

您的乘数是什么?

4

您的加法器是什么?

3

输入要加密的句子

管家做到了

加密:

339 419 407 131 395 471 467 435 407 459 131 403 423 423 403 131 423 467

我缺少什么?

在您的代码中,wordschar变量,只能存储一个字符。相反,您可以将words声明为std::string类型,并包括string库。

std::string words;

要计算每个字符的值,您需要运行一个循环,例如

cout << "Encrypted: " << endl;
for(int i=0;i<words.size();i++)
{
    cout << (int)words[i] * multi + adder << " ";
}
cout << endl;

多个问题:

  1. char words ----仅需一个字符。将其更改为string words

  2. 要与多个单词保持一行,请使用getline函数

    #include <iostream>
    #include <string>
    using namespace std;
    int main ()
    {
        int multi;
        int adder;
        string words;
        cout << "What is your multiplier?" << endl;
        cin >> multi;
        cin.clear();
        cout << "What is your adder?" << endl;
        cin >> adder;
        cin.ignore();
        cout << "Enter in a sentence you want encrypted" << endl;
        getline(cin, words);
    
        cout << "Encrypted: " << endl;
        for(int i=0;i<words.length();i++)
        {
            cout << (int)words[i] * multi + adder << " ";
        }
        cout << endl;
        system("PAUSE");
        return 0;
    }
    

最新更新