Contact și feedback

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.

Shortcuturi

Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.

Generale

Meniu shortcuturi?
Căutare probleme sau utilizatori/
Navigare printre rezultatele căutării↑, ↓
Meniu de contact și feedbackCTRL + Shift + F
Ieșire din meniuriEsc

Editor probleme

Setări editorCTRL + Shift + S
Schimbare stil editorCTRL + Shift + E
Șabloane de codCTRL + Shift + 1/2/3
Golire editorCTRL + Shift + 4

Verifică dacă un caracter este literă în C++

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.

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 (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):

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

Cum verificăm că un caracter este o literă?

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'))

Implementare C++

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;
}

Metoda 2 (funcție predefintă 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;
}

Alte resurse sau bibliografie

Cuprinsul lecției

Se încarcă…

Citește și

Cum să afișezi partea întreagă a unui număr real în C++Radicalul unui număr în C++ (rădăcina pătrată)Factorialul unui număr în C++Structuri repetitive (while, do while, for, etc)Vectorii în C++: declarare și parcurgereSuma elementelor unui vector recursiv în C++Vectori de frecvență (de apariții) în C++Verifică dacă o literă este mică sau mare în C++Materia pentru olimpiada de informatică - tot ce trebuie să știiCMMMC a două numere în C++ (cel mai mic multiplu comun)Verifică dacă un număr dat este o putere de 2 în C++Verifică dacă o literă este vocală în C++Inversarea unui șir de caractere în C++Aplicații cu ciurul lui Eratostene în C++: suma divizorilor, numărul divizorilorInterclasarea a doi vectori în C++Instrucțiunea do while (structuri repetitive)Numărul minim de peroane pentru o gară în C++Indicatorul lui Euler al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Divide et Impera (metodă de programare C++)De ce cer unele probleme răspunsul modulo 666013 sau modulo 1.000.000.007?Pointer în C++. Variabile de tipul char * (char steluță)Mediana unui șir de valori în C++Numărul de divizori al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Al N-lea termen dintr-o progresie aritmeticăComentarii în C++Verificare dacă un număr este palindrom în C++Instrucțiunea while (structuri repetitive)Ce înseamnă variabilă globală și locală în C++?Al N-lea termen dintr-o progresie geometricăInstrucțiunea break (structuri repetitive)Verifică dacă un caracter este literă în C++Maximul și minimul a două valori în C++Transformarea unui număr din baza 10 în baza 2 în C++Verifică dacă un bit de pe o anumită poziție este 1 sau 0 în C++Verifică dacă trei puncte sunt coliniare C++Cel mai frecvent element dintr-un șir în C++Valoarea absolută (modulul) unui număr în C++Numărul aranjamentelor în C++ (formula aranjamentelor)Numărul combinărilor în C++ (formula combinărilor)Instrucțiunea de decizie în C++: if, else, switch, caseVerificare dacă șir de caractere este palindrom în C++Cifra de control a unui numărTransformarea unui număr din baza 2 în baza 10 în C++Combinatorică în C++: permutări, aranjamente, combinări și alteleȘirul lui Fibonacci în C++Ridicarea la putere în timp logaritmic în C++. Exponențiere rapidăSuma 1 + 2 + 3 + ... + N în C++Tipuri de date în C++: numere întregi, reale, caractere și alteleTransformarea unei litere mari în literă mică în C++Ce este o variabilă unsigned în C++?Afișarea elementelor unui vector recursiv în C++Maximul și minimul a n valori în C++Cea mai lungă secvență de elemente crescătoare în C++Ce este o funcție void în C++?Verificarea unui an bisect în C++Funcții în C++. Ce sunt subprogrameleVerifică dacă un număr aparține șirului Fibonacci în C++Calculul combinărilor de n luate câte k (nCk) în C++Instrucțiunea continue (structuri repetitive)Cel mai semnificativ bit în C++Copiuțe: Cifrele unui numărComplexitatea unui algoritm (timp și spațiu) în C++Oglinditul recursiv al unui număr în C++Cum să citești și să afișezi în fișiere în C++Sortare crescătoare recursivă în C++ - Merge sort și Bubble sortTutorial instalare CodeBlocks (ușor) - Introducere în informatică C++Verifică dacă un caracter este cifră în C++Algoritm recursiv pentru căutare binară (clasa a X-a)Ce înseamnă endl în C++?Suma divizorilor unui număr în C++Căutare binară în C++Verifică dacă un număr este par sau impar fără modulo în C++Cel mai mic număr cu suma cifrelor N în C++Operații cu numere mari în C++ - Toate funcțiile explicateNumărul de divizori al unui număr în C++Cel mai mare divizor comun (CMMDC) a două numere în C++Cel mai puțin semnificativ bit în C++Cum să calculezi instant 2 la puterea N în C++Afișarea divizorilor primi ai unui număr în C++Bordarea unei matrice în C++Recursivitate în C++Transformarea unei litere mici în literă mare în C++Aria și circumferința unui cerc în C++Interschimbarea a două variabile în C++ (3 metode)Oglinditul unui număr în C++Cel mai mic/mare divizor prim al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Tipul struct în C++. Ce sunt structurile de date neomogeneDo while vs while în C++ - Care e diferența?Maximul și minimul unui vector în C++Matrice Fibonacci - al n-lea termen Fibonacci în timp logaritmicCifra maximă și minimă a unui număr în C++Numărul de apariții al unui număr într-un vector în C++Prima cifră a unui număr în C++Suma divizorilor numerelor de la 1 la N (Folosind ciurul lui Eratostene)CMMDC recursiv a două numere naturale în C++Al N-lea termen Fibonacci în C++Vectorii în C++: citire și afișareInversarea unui vector în C++Numere triunghiulare. Verificarea unui număr triunghiularCitirea și afișarea matricelor în C++Aria unui triunghi folosind coordonatele acestora în C++Codul ASCII (tabel complet)Șiruri de caractere în C++. Tot ce trebuie să știiCiurul lui Eratostene în C++Matrice în C++. Declararea și parcurgerea tablourilor bidimensionaleRădăcina cubică a unui număr în C++ (cube root)Cifra maximă a unui număr recursiv în C++Verificare număr prim în C++ (Clasa a IX-a)Matrice pătratice în C++. Diagonala principală și secundarăMaximul și minimul a trei valori în C++Suma numerelor naturale dintr-un interval dat în C++Indicatorul lui Euler în C++Cifrele unui număr. Prelucrarea cifrelor unui număr în C++Numărul de divizori primi ai unui număr în C++Funcții predefinite în C++ (matematice, șiruri de caractere)Instrucțiunea for (structuri repetitive)Generarea șirului Fibonacci generalizat în C++Numărul de cifre ale factorialului unui numărAflarea sumei primelor N sume GaussDistanța dintre două puncte în C++Citește un șir de caractere cu spații în C++Câte numere naturale sunt într-un interval dat? (C++)Află secolul unui an citit de la tastatură în C++Numărul permutărilor în C++ (formula permutărilor)

© Drepturi de autor

Echipa InfoAs își rezervă drepturile de autor pentru conținutul acestei pagini. Copierea conținutului fără acordul scris expres al InfoAs reprezintă o încălcare a Legii 8/1996 și va fi tratată ca atare.

Trimite lecția

Toată lecția

Doar videoclipul pe YouTube

Informatica devine ușoară cu InfoAs

Intră în cont