Informatică, întrebare adresată de bughead97, 8 ani în urmă

Ce se va afişa în urma executării secvenţei de program alăturate ştiind că i este o variabilă de

tip întreg, iar variabila x memorează iniţial şirul de caractere ExAMeNe?

for(i = 0; i < strlen(x); i++)

if(x[i] >= ‘A’ && x[i] <=’N’)

x[i] = x[i] + ‘a’-‘A’;

cout << x;​

Răspunsuri la întrebare

Răspuns de cristianpaiu
1

Răspuns:

examene

Explicație:

#include <iostream>

using namespace std;

int main()

{

   

   int i;

   char x[7] = { 'E','x','A','M','e','N','e'};

   for (i = 0; i < strlen(x); i++)

       

       if (x[i] >= 'A' && x[i] <= 'N')

           

           x[i] = x[i] +'a' - 'A';

           //+ 'a' - 'A';

   cout << x;

};

//  Explicatie la  linia : x[i] = x[i] +'a' - 'A';

// in ASCII TABLE vei observa ca majusculele au un echivalent numeric //mai mic . Se adauga diferenta practic ca sa se ajunga la echivalentul //numeric al caracterului ce nu este scris cu majuscula . Se adauga //practic 32 . Daca pui x[i] = x[i] + 32; in loc de x[i] = x[i] + 'a' - 'A'; vei //observa ca obtii acelasi rezultat .


bughead97: Buna! Îmi poți explica ce face instrucțiunea x[i]=x[i]+'a'-'A'
cristianpaiu: intra aici si vezi ASCII Table https://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html Vei observa ca Majusculele au un echivalent numeric mai mic . Se adauga diferenta practic ca sa se ajunga la echivalentul numeric al caracterului ce nu este scris cu majuscula . se adauga practic 32 . Daca pui x[i] = x[i] + 32; in loc de x[i] = x[i] + 'a' - 'A'; vei observa ca obtii acelasi rezultat .
bughead97: ok multumesc
cristianpaiu: cu placere ! Inimioara si stelute :) daca ti-a fost util raspunsul :)
Alte întrebări interesante