Răspuns :
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
.
Vă mulțumim că ați ales să vizitați site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, vă rugăm să ne contactați. Revenirea dumneavoastră ne va bucura, iar pentru acces rapid, nu uitați să ne salvați la favorite!