0

私は暗号化プログラムをやっています。私の教授は、このプログラムは正しいと言いましたがswitch、暗号化値を 1 つずつ入力するため、ステートメントの論理が間違っています..私の教授は、最初にそれを変数に入れることを望んでいます。暗号化値に表示してください..助けてください..

#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<windows.h>
#include<cstdlib>

main()
{
const char *stringlength;
char input[100];
int i;

cout<<"Input letters only:";
cin>>input;
stringlength=input;
cout<<"\nEncryption Value:";
for(i=0; i<strlen(stringlength); i++)
{

    switch(input[i])
    {
    case 'a':cout<<"0";break;
    case 'A':cout<<"1";break;
    case 'e':cout<<"2";break;
    case 'E':cout<<"3";break;
    case 'i':cout<<"4";break;
    case 'I':cout<<"5";break;
    case 'o':cout<<"6";break;
    case 'O':cout<<"7";break;
    case 'u':cout<<"8";break;
    case 'U':cout<<"9";break;
    case 'B':cout<<"C";break;
    case 'C':cout<<"D";break;
    case 'D':cout<<"E";break;
    case 'F':cout<<"G";break;
    case 'G':cout<<"H";break;
    case 'H':cout<<"I";break;
    case 'J':cout<<"K";break;
    case 'K':cout<<"L";break;
    case 'L':cout<<"M";break;
    case 'M':cout<<"N";break;
    case 'N':cout<<"O";break;
    case 'P':cout<<"Q";break;
    case 'Q':cout<<"R";break;
    case 'R':cout<<"S";break;
    case 'S':cout<<"T";break;
    case 'T':cout<<"U";break;
    case 'V':cout<<"W";break;
    case 'W':cout<<"X";break;
    case 'X':cout<<"Y";break;
    case 'Y':cout<<"Z";break;
    case 'Z':cout<<"A";break;
    case 'b':cout<<"c";break;
    case 'c':cout<<"d";break;
    case 'd':cout<<"e";break;
    case 'f':cout<<"g";break;
    case 'g':cout<<"h";break;
    case 'h':cout<<"i";break;
    case 'j':cout<<"k";break;
    case 'k':cout<<"l";break;
    case 'l':cout<<"m";break;
    case 'm':cout<<"n";break;
    case 'n':cout<<"o";break;
    case 'p':cout<<"q";break;
    case 'q':cout<<"r";break;
    case 'r':cout<<"s";break;
    case 's':cout<<"t";break;
    case 't':cout<<"u";break;
    case 'v':cout<<"w";break;
    case 'w':cout<<"x";break;
    case 'x':cout<<"y";break;
    case 'y':cout<<"z";break;
    case 'z':cout<<"a";break;
    default : cout<<"\nInvalid Character!\n"; break;
    }
}
getch();
return 0;
}

私はそれで何ができますか?私のヒントは、テキストのすべての暗号化値をcout一度に入れることができる変数が必要だということです。

4

3 に答える 3

1

C++ で文字列ストリームを使用します。

#include <sstream>
#include <string>

これをメイン関数の宣言に入れます。

std::stringstream ss; 

スイッチの場合は次のとおりです。

case 'a':ss<<"0";break;
case 'A':ss<<"1";break;
case 'e':ss<<"2";break;
case 'E':ss<<"3";break;
case 'i':ss<<"4";break;
case 'I':ss<<"5";break;
case 'o':ss<<"6";break;
... 

最後にストリームを文字列出力に読み込み、出力します -

std::string output = ss.str(); 
cout << output << "\n";
于 2013-10-01T14:23:57.087 に答える
0

あなたの教授はおそらく を探していchar output[100]ます。char input[100]James Kanze が説明した理由により、それは と同じくらい悪いことですが、あなたの教授は前世紀に行き詰まっているようです. この種のコードがハッカーの原因です。

于 2013-10-01T23:02:04.870 に答える