Wprowadzanie wartości i ciągu znaków
Ostatnio zmodyfikowano 2020-11-22 14:21
wwojtas Temat założony przez niniejszego użytkownika |
Wprowadzanie wartości i ciągu znaków » 2020-11-22 12:15:17 Witam i uszanowanko. Jestem początkującym programistą, więc problem niby błahy ale nie wiem co zrobić? Help Program (szyfr Cezara) przesuwa litery w prawo o liczbę z zakresu od 1 do 25 (znak spacji pozostaje bez zmian). Dane wejściowe: W pierwszej linii podana jest liczba z zakresu od 1 do 25 określająca o ile należy przesunąć litery w prawo. Jeżeli liczba nie będzie z tego zakresu, to program ma poprosić o ponowne wprowadzenie liczby. W drugiej linii podawane jest zdanie do zaszyfrowania składające się tylko z DUŻYCH liter (A-Z) oraz spacji - tu nie wiem co zrobić wczytam klucz, wczytam ciąg znaków bez spacji. Ale nie wiem jak zrobić by po wczytaniu klucza wczytać ciąg znaków ze spacją. próbowałem getline(cin, wyrazSzyfruj); ale coś jest nie tak Kod poniżej: #include <iostream>
using namespace std;
string szyfrCezara( int klucz, string wyrazSzyfruj ) { for( int i = 0; i < wyrazSzyfruj.size(); i++ ) { int x = wyrazSzyfruj[ i ] + klucz; if( x < 65 ) wyrazSzyfruj[ i ] +=( 26 + klucz ); else if( x > 90 ) wyrazSzyfruj[ i ] -=( 26 - klucz ); else wyrazSzyfruj[ i ] += klucz; } return wyrazSzyfruj; }
string szyfrCezaraDekoder( int klucz, string wyrazOdszyfruj ) { for( int i = 0; i < wyrazOdszyfruj.size(); i++ ) { int x = wyrazOdszyfruj[ i ] - klucz; if( x < 65 ) wyrazOdszyfruj[ i ] +=( 26 - klucz ); else if( x > 90 ) wyrazOdszyfruj[ i ] -=( 26 + klucz ); else wyrazOdszyfruj[ i ] -= klucz; } return wyrazOdszyfruj; }
int main() { string wyrazSzyfruj; int klucz; do { cout << "Podaj klucz szyfrowania: "; cin >> klucz; } while( klucz > 25 || klucz < 1 ); cin >> wyrazSzyfruj; cout << "Wyraz zaszyfrowany to: "; cout << klucz << szyfrCezara( klucz, wyrazSzyfruj ); cout << endl; cout << "Wyraz rozszyfrowany to: "; cout << szyfrCezaraDekoder( klucz, szyfrCezara( klucz, wyrazSzyfruj ) ); cout << endl; return 0; }
|
|
pekfos |
» 2020-11-22 14:21:38 |
|
« 1 » |