Verifică dacă o literă este mică sau mare în C++

Dându-se un caracter c care reprezintă o literă, să se verifice dacă este o literă mică sau o literă mare.

Exemplu. Pentru c = 'a', răspunsul este MICA, iar pentru c = 'A', răspunsul este MARE.

Metoda 1 (codul ASCII)

Ne vom folosi de codul ASCII al caracterului citit, c.

Ce este codul ASCII al unui caracter?

Când se stabileau bazele programării, era nevoie de o modalitate ușoară de a reprezenta caractere (litere, simboluri diverse sau chiar cifre). S-a dovedit că cea mai ușoară metodă ar fi să i se atribuie fiecărui caracter câte un număr unic, astfel, un text putea fi reprezentat foarte ușor în cifre și implicit în binar (deoarece calculatoarele funcționează în binar).

Astfel, s-a standardizat un tabel de acest tip numit ASCII (A merican S tandard C ode for I nformation I nterchange). Mai exact, s-au ales 128 (și mai târziu 256) de caractere, primului caracter fiindu-i atribuit valoarea 0, al doilea — valoarea 1, …, al 128-lea — valoarea 127.

Aceste valori nu sunt așezate aleatoriu: dacă litera a (a mic) are codul 97, atunci litera b are codul 98 și așa mai departe. Iată tabelul ASCII complet (sursa: ResearchGate.net):

https://i.ibb.co/jrBXK8b/image.png

Cum verificăm dacă o literă este mică sau mare?

Deoarece caracterele sunt consecutive, va trebui să verificăm dacă codul ASCII al caracterului nostru este între codul ASCII al caracterlor A și Z (pentru literele mari), sau a și z (pentru literele mici).

Mai exact, va trebui să verificăm:

if(65 <= c && c <= 90) //Este literă mare

Din fericire, putem simplifica și mai mult: dacă apelăm 'caracter', o să ne returneze codul său ASCII. Așadar, verificarea se reduce la următoarea expresie (care este mai logică):

if('A' <= c && c <= 'Z') //Este literă mare

Implementare C++

Pentru a verifica că un caracter este o literă mare sau mică, vom proceda astfel:

#include <iostream>

using namespace std;

int main()
{
    //Declarăm și citim caracterul nostru, c
    char c;
    cin >> c;

    //Verificăm dacă este literă mare/mică, folosind algoritmul explicat mai sus
    if('A' <= c && c <= 'Z') { //Este literă mare
        cout << c << " este o litera mare";
    } else { //Nu este literă mare (este mică)
        cout << c << " este o litera mica";
    }
    return 0;
}

Metoda 2 (funcțiile predefinte islower și isupper)

O altă metodă este să folosim funcțiile predefinite islower și isupper din cadrul bibliotecii <cstring>. Funcțiile iau ca parametru un caracter. Astfel, codul devine următorul:

#include <iostream>
#include <cstring> //Pentru a accesa funcția isupper

using namespace std;

int main()
{
    //Declarăm și citim caracterul nostru, c
    char c;
    cin >> c;

    //Verificăm dacă este literă mare, folosind funcția isupper (explicații mai sus)
    if(isupper(c)) { //Este literă mare
        cout << c << " este o litera mare";
    } else { //Nu este o literă mare (este mică)
        cout << c << " este o litera mica";
    }
    return 0;
}

Alte resurse sau bibliografie

DS

Autorul acestei lecții

Dominic Satnoianu

Această lecție a fost redactată de către Dominic Satnoianu.

© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.

Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.

Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.

Comentarii 0

Autentifică-te pentru a putea comenta.

Autentifică-te