• 0
  • cytuj |

  • Witam!
    Wie ktoś może jak zrobić w tym programie żeby litera x zmieniała się w literę a, litera y w literę b, a litera z w literę c, bo nie wiem jak to zrobić bo takto mi wszystko ładnie działa każda litera zamienia się w inna tzn. o 3 przesunięte w przód ( a zamienia się w literę d, b zamienia się w e itd) tylko 3 ostatnie litery alfabetu nie wiem jak zrobić? moze ktoś wie to prosiłbym o napisanie jak to zrobić?
    A oto ten kod:


    #include <iostream>
    #include <string>

    using namespace std;

    int main()
    {
    string oryginal, zaszyfrowany, odszyfrowany;
    const int przesuniecie=3; // wartosc dodawana do znaku (mniejsza od 256)

    cout <<"Podaj tekst do szyfrowania: ";
    cin >>oryginal;
    cin.ignore();
    cout <<"Tekst oryginalny: "<<oryginal<<"\n\n";

    //ustalenie rozmiaru tekstu zaszyfrowanego
    zaszyfrowany.resize(oryginal.size());

    for (unsigned int i=0; i<oryginal.size(); ++i)
    zaszyfrowany[i]= (oryginal[i]+przesuniecie)%256;

    cout <<"Tekst zaszyfrowany: "<<zaszyfrowany<<"\n\n";

    //ustalenie rozmiaru tekstu odszyfrowanego
    odszyfrowany.resize(zaszyfrowany.size());

    for (unsigned int i=0; i<zaszyfrowany.size(); ++i)
    odszyfrowany[i]=(zaszyfrowany[i]+256-przesuniecie)%256;

    cout <<"Tekst odszyfrowany: "<<odszyfrowany<<"\n\n";


    if( oryginal == odszyfrowany)
    cout <<"Szyfrowanie przebieglo prawidlowo\n\n";
    else
    cout <<"Wystapil NIEZNANY blad podczas szyfrowania!!!\n\n";

    cout <<"Nacisnij ENTER aby zakonczyc\n";
    getchar();
    return 0;
    }
    d41d8cd98f00b204e9800998ecf8427e
  • lukasz.kaz
    Wydział: W-4 EKA
    Rok studiów: 1

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • Dołącz sobie plik cctype
    pierwsza pętla for:
    for (unsigned int i=0; i<oryginal.size(); ++i) {
    zaszyfrowany[i]= (oryginal[i]+przesuniecie)%256;
    if(!(isalpha(zaszyfrowany[i])))
    zaszyfrowany[i]= (oryginal[i]-26+przesuniecie)%256;
    }

    druga analogicznie (w isalpha() zamiast zaszyfrowany odszyfrowany i zamiast -26 +26)
    to tak na szybko. moze ktoś ma lepsze rozwiązanie
    d41d8cd98f00b204e9800998ecf8427e

Powered by phpBB modified by Przemo © 2003 phpBB Group. Then, after many years modified again, this time by Piotrek © 2014
Strona wygenerowana w 22ms. Zapytań do SQL: 18