• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Pytanie o szyfr cezara czyli czy jest to poprawna implementacja

VPS Starter Arubacloud
0 głosów
379 wizyt
pytanie zadane 1 lutego 2017 w C i C++ przez famousghost Początkujący (430 p.)
zamknięte 1 lutego 2017 przez famousghost
Implementacja szyfru cezara dla liczb i liter. I teraz moje pytanie czy jest to poprawna implementacja danego szyfru? nie ważne czy da się pisać ze spacjami czy nie ważne czy szyfr poprawnie działa proszę o pomoc :).

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string napis;
    int i=0;
    long long ile;
    while(true)
    {
        cin>>napis;
        cin>>ile;
        while(i<napis.length())
        {
            if(napis[i]>='A'&&napis[i]<='Z')
            {
                napis[i]+=(ile%25);
                if(napis[i]>'Z')
                {
                    napis[i]=(napis[i]-90) + 64;
                }
                else if(napis[i]<'A')
                {
                    napis[i]=91-(65-napis[i]);
                }
                }
            else if(napis[i]>='a'&&napis[i]<='z')
            {
                napis[i]-=32;
                napis[i]+=(ile%25);
                if(napis[i]>'Z')
                {
                    napis[i]=(napis[i]-90) + 64;
                }
                else if(napis[i]<'A')
                {
                    napis[i]=91-(65-napis[i]);
                }
                napis[i]+=32;
            }
            else if(napis[i]>='0'&&napis[i]<='9')
            {
                napis[i]+=(ile%10);
                if(napis[i]>'9')
                {
                    napis[i]=(napis[i]-57) + 47;
                }
                else if(napis[i]<'0')
                {
                    napis[i]=58-(48-napis[i]);
                }
            }
            cout<<napis[i];
            i++;
        }
        i=0;
        cout<<endl;
    }
    return 0;
}

 

komentarz zamknięcia: Dostałem odpowiedź na pytanie
1
komentarz 1 lutego 2017 przez niezalogowany

Bardzo ładna implementacja. Chciałem się do czegoś doczepić, ale nie mogę! Ładnie rozpatrzyłeś chyba wszystkie możliwe sytuacje. Jedyne co można dodać to wpisywanie zdań zamiast pojedynczych słów:

cin>>napis;

na 

getline(cin, napis);

 

komentarz 1 lutego 2017 przez famousghost Początkujący (430 p.)
Dzięki wielkie to dobrze bo właśnie chciałem żeby ktoś sprawdził bo jak wiadomo człowiek, który napisze czasem nie pomyśli o jakiejś wersji wydarzeń i może się cały program popsuć. A tak to mam pewność, że jest to dobra implementacja :D dzięki :)

Podobne pytania

0 głosów
1 odpowiedź 751 wizyt
+1 głos
1 odpowiedź 494 wizyt
pytanie zadane 12 czerwca 2016 w C i C++ przez Szejk Obywatel (1,510 p.)
0 głosów
1 odpowiedź 1,422 wizyt
pytanie zadane 5 maja 2016 w C i C++ przez Linker Bywalec (2,690 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...