Encontre soluções para seus problemas com a ajuda dos especialistas do IDNLearner.com. Nossos especialistas estão sempre dispostos a oferecer respostas profundas e soluções práticas para todas as suas perguntas.

În C++:
Se dă un caracter să se elaboreze un program în care caracterul mic este transformat în mare, și invers.​


Sagot :

VxFidn

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

.

Sua contribuição é vital para nós. Não se esqueça de voltar e compartilhar mais de suas ideias e conhecimentos. Juntos, alcançaremos novos patamares de sabedoria. Obrigado por confiar no IDNLearner.com. Estamos dedicados a fornecer respostas precisas, então visite-nos novamente para mais soluções.