Informatică, întrebare adresată de IuliaChe, 9 ani în urmă

Codificati un text astfel incat litera a sa devina c, b sa devina e s.a.m.d.
Cum se face ?Nu imi iese


Razzvy: Tocmai ai facut cunostinta cu cifrul Cezar!

Răspunsuri la întrebare

Răspuns de Razzvy
1
#include <iostream>
#include <cstring>
using namespace std;

int main()
{
   char text[10000];
   int len;
   cin.getline(text, 256);
   len = strlen(text);
   for(int i = 0; i < len; ++i)
   {
      if(text[i] >= 'a' && text[i] <= 'z')  //Daca e litera
      { 
         text[i] = (text[i] - 'a' + 1) % ('z' - 'a' + 1 /*26*/) + 'a' /*97*/;
         //Am fi putut face direct text[i]+=1, dar problema era cand ajungea la z, daca adaugam 1, in codul ascii din 122(codul lui z), devenea 123, dar defapt trebuia sa devina 97; As fi putut pune un if(text[i] == 'z') text[i] = 'a', dar am vrut sa fac o formula generala
      }
   }
   cout<<text;
}

IuliaChe: Multumesc!
Alte întrebări interesante