Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.
Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.
Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.
Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.
Meniu shortcuturi | ? |
Căutare probleme sau utilizatori | / |
Navigare printre rezultatele căutării | ↑, ↓ |
Meniu de contact și feedback | CTRL + Shift + F |
Ieșire din meniuri | Esc |
Setări editor | CTRL + Shift + S |
Schimbare stil editor | CTRL + Shift + E |
Șabloane de cod | CTRL + Shift + 1/2/3 |
Golire editor | CTRL + Shift + 4 |
Dându-se un caracter c
, să se verifice dacă este sau nu o literă.
Exemplu. Pentru c = 'a'
, răspunsul este DA
, iar pentru c = '1'
, răspunsul este NU
.
Ne vom folosi de codul ASCII al caracterului citit, c
.
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 (American Standard Code for Information Interchange). 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):
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), respectiv a
și z
(pentru literele mici).
Mai exact, va trebui să verificăm:
if((65 <= c && c <= 90) || (97 <= c && c <= 122)) //65 - 90 ('A' - 'Z'), 97 - 122 ('a' - 'z')
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') || ('a' <= c && c <= 'z'))
Pentru a verifica că un caracter este sau nu literă, 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ă, folosind algoritmul explicat mai sus
if(('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z')) { //Este literă
cout << c << " este o litera";
} else { //Nu este
cout << c << " nu este o litera";
}
return 0;
}
isalpha
)O altă metodă este să folosim funcția predefinită isalpha
din cadrul bibliotecii <cstring>
. Funcția ia ca parametru un caracter. Astfel, codul devine următorul:
#include <iostream>
#include <cstring> //Pentru a accesa funcția isalpha
using namespace std;
int main()
{
//Declarăm și citim caracterul nostru, c
char c;
cin >> c;
//Verificăm dacă este literă, folosind funcția isalpha (explicații mai sus)
if(isalpha(c)) { //Este literă
cout << c << " este o litera";
} else { //Nu este
cout << c << " nu este o litera";
}
return 0;
}