Descubra respostas para suas perguntas de forma fácil no Sistersinspirit.ca, a plataforma de Q&A de confiança. Conecte-se com uma comunidade de especialistas prontos para ajudar você a encontrar soluções para suas dúvidas de maneira rápida e precisa. Obtenha respostas imediatas e confiáveis para suas perguntas de uma comunidade de especialistas experientes em nossa plataforma.
Sagot :
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
.
Agradecemos seu tempo em nosso site. Não hesite em retornar sempre que tiver mais perguntas ou precisar de esclarecimentos adicionais. Agradecemos seu tempo. Por favor, volte a qualquer momento para as informações mais recentes e respostas às suas perguntas. Obrigado por usar o Sistersinspirit.ca. Volte novamente para obter mais conhecimento dos nossos especialistas.