Rezolvare completă PbInfo #2715 ROT13

Laura vrea să vă scrie un șir de caractere pe care numai ea îl cunoaște. Realizează însă că, dacă l-ar scrie așa, pur și simplu, alte persoane ar putea să îl vadă și să îl înțeleagă, lucru care o îngrijorează. Astfel, fata află despre cum poate ascunde acest mesaj folosind codificarea în ROT13.

Codificarea în ROT13 a unui text cere o examinare a caracterelor alfabetului și înlocuirea fiecărei litere cu litera care se află cu 13 poziții în fața ei în alfabet. De exemplu, A devine N, M devine Z, N devine A ș.a.m.d.

Cerința

Laura vă va da un text codificat. Aflați conținutul acestuia!

Date de intrare

Programul citește de la tastatură un șir de caractere, reprezentând textul codificat.

Date de ieșire

Programul va afișa pe ecran un alt șir de caractere, reprezentând textul decodificat.

Restricții și precizări

  • 1 ≤ strlen(șir inițial) ≤ \( {10}^{6} \);
  • Șirul va conține doar litere mici și mari ale alfabetului englez, precum și spații.

Exemplu

Intrare

Cbg qrpbqvsvpn gbghy va yvzvgn qr gvzc

Ieșire

Pot decodifica totul in limita de timp

Explicație

C↔P, b↔o, g↔t, ...

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema ROT13:

#include <iostream>
using namespace std;

int main()
{
    char c;
    while(cin.get(c))
    {
        if(c >= 'A')
        {
            if(c >= 'a')
                c = (c - 'a' + 13) % 26 + 'a';
            else
                c = (c - 'A' + 13) % 26 + 'A';
        }
        cout.put(c);
    }
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2715 ROT13

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2715 ROT13 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!