[C++] Program szyfrujący metodą cezara


(Ziom32) #1

Mam napisać program szyfrujący metodą cezaza(każda literka jest przesuwana o 3 znaki do przodu np. a to c itd)

Ma on szyfrować tekst z memo1 i zaszyfrowany zapisywać do memo2. Napisałem go tak ale nic nie robi tzn. nie wyskakuje żaden błąd ale i nic nie szyfruje.

void __fastcall TForm1::Button1Click(TObject *Sender)

{

int x;

char k;

for(int i=0;iMemo1->Lines->Count;i++)

{

for(int j=0;jMemo1->MaxLength;j++)

{

x=Form1->Memo1->Lines->Strings_[j];_

x=x+3;

k=x;

Form1->Memo2->Lines->Strings__[j]=k;

}

}

}


(Grzegorz Kwiatek) #2

Wewnętrzna pętla jest na mój gust błędna. Domyślam się, że chciałeś by j iterowało "po literkach" w wierszu - jeśli tak, to j powinno się indeksować od 1 (bo tak klasa AnsiString ma) aż do Memo -> Lines -> Strings_.Length(), zamiast tego nieszczęsnego MaxLength. Poza tym Form1->Memo1->Lines->Strings__[j] zwraca zapewne char, więc nie wiem po co te zabawy z rzutowaniem. No i na koniec, jeśli to szyfr Cezara, to pomyśl o "zawijaniu" liter, bo przecież 'Z'+3 nie da ci 'C' czy co tam chcesz..._