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

Obține medalia mult dorită. Devino As la olimpiadă.

Curs complet de olimpiadă, pregătit de olimpici de la Oxford și TU Delft.

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