|

Funcții pentru Prelucrarea Caracterelor din Biblioteca în C++ 3


1. Obiectivele lecției:

  • Să înțeleagă scopul și utilizarea funcțiilor din biblioteca <cctype> pentru prelucrarea caracterelor.
  • Să implementeze exemple practice folosind aceste funcții.
  • Să aplice funcțiile în probleme care implică manipularea șirurilor și caracterelor.

2. Funcțiile principale din <cctype>

Biblioteca <cctype> oferă funcții utile pentru clasificarea și transformarea caracterelor. Aceste funcții lucrează cu valori de tip char sau int și returnează rezultate de tip int sau bool.


1. Clasificarea caracterelor

FuncțieDescriereExemplu
isalnum(c)Verifică dacă c este literă sau cifră.isalnum(‘a’) -> true
isalpha(c)Verifică dacă c este literă.isalpha(‘A’) -> true
isdigit(c)Verifică dacă c este cifră.isdigit(‘5’) -> true
islower(c)Verifică dacă c este literă mică.islower(‘a’) -> true
isupper(c)Verifică dacă c este literă mare.isupper(‘Z’) -> true
isspace(c)Verifică dacă c este spațiu alb.isspace(‘ ‘) -> true
ispunct(c)Verifică dacă c este caracter de punctuație.ispunct(‘!’) -> true
isprint(c)Verifică dacă c este caracter printabil.isprint(‘A’) -> true
iscntrl(c)Verifică dacă c este caracter de control.iscntrl(‘\n’) -> true
isgraph(c)Verifică dacă c este printabil și vizibil.isgraph(‘A’) -> true

2. Transformarea caracterelor

FuncțieDescriereExemplu
tolower(c)Transformă c în literă mică (dacă este posibil).tolower(‘A’) -> ‘a’
toupper(c)Transformă c în literă mare (dacă este posibil).toupper(‘a’) -> ‘A’

3. Exemple de utilizare


Exemplu 1: Clasificarea caracterelor

#include <iostream>

#include <cctype>

using namespace std;

int main() {

    char c;

    cout << „Introduceti un caracter: „;

    cin >> c;

    if (isalpha(c)) {

        cout << c << ” este o litera.” << endl;

        if (islower(c)) {

            cout << c << ” este litera mica.” << endl;

        } else {

            cout << c << ” este litera mare.” << endl;

        }

    } else if (isdigit(c)) {

        cout << c << ” este o cifra.” << endl;

    } else if (isspace(c)) {

        cout << c << ” este un spatiu alb.” << endl;

    } else if (ispunct(c)) {

        cout << c << ” este un caracter de punctuatie.” << endl;

    } else {

        cout << c << ” este un caracter special sau necunoscut.” << endl;

    }

    return 0;

}


Exemplu 2: Transformarea caracterelor

#include <iostream>

#include <cctype>

using namespace std;

int main() {

    char c;

    cout << „Introduceti o litera: „;

    cin >> c;

    if (isalpha(c)) {

        cout << „Litera mare: ” << (char)toupper(c) << endl;

        cout << „Litera mica: ” << (char)tolower(c) << endl;

    } else {

        cout << c << ” nu este o litera.” << endl;

    }

    return 0;

}


Exemplu 3: Numărarea tipurilor de caractere într-un șir

#include <iostream>

#include <cctype>

#include <cstring>

using namespace std;

int main() {

    char sir[100];

    cout << „Introduceti un sir de caractere: „;

    cin.getline(sir, 100);

    int litere = 0, cifre = 0, spatii = 0, punctuatii = 0;

    for (int i = 0; i < strlen(sir); i++) {

        if (isalpha(sir[i])) {

            litere++;

        } else if (isdigit(sir[i])) {

            cifre++;

        } else if (isspace(sir[i])) {

            spatii++;

        } else if (ispunct(sir[i])) {

            punctuatii++;

        }

    }

    cout << „Litere: ” << litere << endl;

    cout << „Cifre: ” << cifre << endl;

    cout << „Spatii: ” << spatii << endl;

    cout << „Punctuatii: ” << punctuatii << endl;

    return 0;

}


4. Activități practice pentru elevi

  1. Scrieți un program care transformă toate literele mici dintr-un șir în litere mari.
  2. Realizați un program care elimină toate caracterele de punctuație dintr-un șir.
  3. Implementați un program care numără toate vocalele și consoanele dintr-un șir.

5. Scheme logice

  1. Clasificarea unui caracter:
    • Start -> Verifică tipul caracterului folosind funcțiile din <cctype> -> Afișează rezultatul -> Stop.
  2. Transformarea unui caracter:
    • Start -> Verifică dacă caracterul este literă -> Aplică toupper sau tolower -> Afișează rezultatul -> Stop.

6. Concluzie:

  • Funcțiile din <cctype> sunt utile pentru manipularea și clasificarea caracterelor în C++.
  • Acestea simplifică procesarea șirurilor și a datelor textuale.
  • Practica utilizării acestor funcții ajută la rezolvarea problemelor complexe legate de prelucrarea textului.

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *