În C++:
Se dă un caracter să se elaboreze un program în care caracterul mic este transformat în mare, și invers.
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <cctype>
int main()
{
char caracter;
std::cout << "Caracter: ";
std::cin >> caracter;
if (islower(caracter)) {
caracter = toupper(caracter);
} else if (isupper(caracter)) {
caracter = tolower(caracter);
}
std::cout << "Transformat: " << caracter << std::endl;
}
Explicație:
#include <iostream>
using namespace std;
int main() {
char x;
cin >> x;
if (x >= 'a' && x <= 'z') cout << (char)(x - 'a' + 'A');
else if (x >= 'A' && x <= 'Z') cout << (char)(x - 'A' + 'a');
else cout << "Caracterul introdus nu e litera";
}
► Explicatie :
Ne putem folosi de faptul ca in ASCII caracterele sunt in ordine crescatoare, succesiva, asa cum sunt in alfabet. Astfel putem verifica manual daca un caracter este litera mare (verificand daca valoarea ascii e cuprinsa intre 'a' si 'z'), si il putem transforma in litera mare scazand din x valoarea lui 'a' (asa aflam practic a cata litera din alfabet este x : daca x='a' atunci vom avea 0, daca e 'b' atunci vom avea 1, etc.). Adaugand valoarea obtinuta la 'A' ajungem la caracterul corespunzator literei mari.
Idem pentru a transforma din litera mare in litera mica. Verificam sa fie intre 'A' si 'Z', apoi scadem valoarea lui 'A' si o adunam pe cea a lui 'a'.
a → b → c → ..... → z
A → B → C → .... → Z
.
Acelasi lucru trebuia facut si pentru litera mare