Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

mariusz1024

Rozwiązany: Szyfr cezara - malutki problem

Polecane posty

Bardzo proszę o małą pomoc przy tym kodzie.


#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
int k=0, przesuniecie=0, dlugosc_slowa; //k - licznik
string szyfr;
cout << "Podaj slowo do zakodaowania: ";
//cin >> szyfr;
cout << endl;
szyfr = "abcdefghijklmnopqrstuvwxyz";
dlugosc_slowa = szyfr.size();
cout << "Podaj przesuniecie: "; cin >> przesuniecie;
while(k<dlugosc_slowa)
{
if(szyfr[k]>='a')
{
szyfr[k]+=przesuniecie;
}
k++;
}
cout << szyfr << endl;
k = 0;
while(k<dlugosc_slowa)
{
if(szyfr[k]<='z')
{
szyfr[k]=(szyfr[k]-przesuniecie);
}
k++;
}
cout << szyfr << endl;
system("pause");
return 0;
}

Link do komentarza
Udostępnij na innych stronach

Czemu zakładasz, że 'szyfr' jest ciągiem znaków, a potem robisz z niego tablicę nawet jej nie deklarując?

Tak to raczej nie zadziała, bo k- odpowiada za konkretny znak, a ty w ogóle nie rezerwujesz pamięci.

@down

Chyba, że tak. Nie wiedziałem, czy to zadziała.

Link do komentarza
Udostępnij na innych stronach

Na co ma deklarować pamięć? Stworzył stringa to ma stringa i się po prostu przez indeks 'k' odwołuje do konkretnych znaków.

Stosowne w tym topicu jest pytanie wies.niaka :) Niemniej zakładając, że pierwsza pętla ma tekst szyfrować, a druga dekodować, można śmiało założyć, że na końcu obu tekstów pojawią się nieliterowe szlaczki :)

Jeśli program ma działać tylko dla małych liter, to trzeba zmienić implementacje pętlelk i np. zrobić stworzyć warunki na wypadek przekroczenia zakresu alfabetu.

To się może przydać, a przynajmniej pomoże zrozumieć, czemu dostajesz w wyniku to co dostajesz http://pl.wikipedia.org/wiki/ASCII

Link do komentarza
Udostępnij na innych stronach

Usiądź z kartką, napisz sobie z 5 przykładów literek (najlepiej 2 z lewego końca alfabetu, 2 z drugiego końca i jedną ze środka), wybierz 2 różne przesunięcia, zakoduj, odkoduj, i na podstawie analizy wyników wymyśl jak zależne od siebie są wartości "przed przesunięciem" i "po przesunięciu".

Link do komentarza
Udostępnij na innych stronach

Gość
Temat jest zablokowany i nie można w nim pisać.


  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...