|

Șirurile de Caractere în C++ 2


1. Obiectivele lecției:

  • Să înțeleagă ce sunt șirurile de caractere în C++.
  • Să învețe cum să declare, să inițializeze și să manipuleze șiruri de caractere.
  • Să implementeze programe practice care implică utilizarea șirurilor de caractere.

2. Conținutul lecției:


Ce este un șir de caractere?

  • Definiție: Un șir de caractere este o secvență de caractere, terminată de caracterul special ‘\0’ (null terminator).
  • Tipuri de șiruri de caractere în C++:
    1. Șiruri de caractere în stil C (folosind array-uri de caractere).
    2. Obiecte de tip std::string din biblioteca standard.

1. Șiruri de caractere în stil C

Declararea și inițializarea

  1. Declarare:

char sir[dimensiune];

  1. Ex.: char sir[20]; // Șir de caractere cu dimensiunea 20.
  2. Inițializare:
    • Implicit:

char sir[] = „Salut!”;

  1. Explicit:

char sir[6] = {‘S’, ‘a’, ‘l’, ‘u’, ‘t’, ‘\0’};


Exemple de operații cu șiruri în stil C

Exemplu 1: Citirea și afișarea unui șir

#include <iostream>

using namespace std;

int main() {

    char sir[100];

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

    cin >> sir;

    cout << „Ati introdus: ” << sir << endl;

    return 0;

}


Exemplu 2: Utilizarea funcțiilor din <cstring>

Biblioteca <cstring> oferă funcții pentru manipularea șirurilor:

  • strlen(sir) – Returnează lungimea șirului.
  • strcpy(dest, src) – Copiază un șir în altul.
  • strcat(dest, src) – Concatenează două șiruri.
  • strcmp(sir1, sir2) – Compară două șiruri (lexicografic).

#include <iostream>

#include <cstring>

using namespace std;

int main() {

    char sir1[100] = „Salut”;

    char sir2[100] = ” lume!”;

    // Lungimea șirului

    cout << „Lungimea lui sir1: ” << strlen(sir1) << endl;

    // Concatenează sir2 la sir1

    strcat(sir1, sir2);

    cout << „Concatenare: ” << sir1 << endl;

    // Comparare

    if (strcmp(sir1, „Salut lume!”) == 0) {

        cout << „sir1 este egal cu ‘Salut lume!'” << endl;

    } else {

        cout << „sir1 nu este egal cu ‘Salut lume!'” << endl;

    }

    return 0;

}


2. Șiruri de caractere folosind std::string

Declararea și inițializarea

  1. Declarare:

string sir;

  1. Inițializare:

string sir = „Salut!”;


Exemple de operații cu std::string

Exemplu 1: Citirea și afișarea unui șir

#include <iostream>

#include <string>

using namespace std;

int main() {

    string sir;

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

    getline(cin, sir);

    cout << „Ati introdus: ” << sir << endl;

    return 0;

}


Exemplu 2: Operații comune

  1. Lungimea unui șir:

string sir = „Salut!”;

cout << „Lungimea sirului: ” << sir.length() << endl;

  1. Concatenare:

string sir1 = „Salut”;

string sir2 = ” lume!”;

string rezultat = sir1 + sir2;

cout << „Rezultat: ” << rezultat << endl;

  1. Comparare:

string sir1 = „abc”;

string sir2 = „abc”;

if (sir1 == sir2) {

    cout << „Sirurile sunt egale.” << endl;

} else {

    cout << „Sirurile nu sunt egale.” << endl;

}

  1. Extracție și inserare:

string sir = „Salut, lume!”;

cout << „Substring: ” << sir.substr(7, 4) << endl; // „lume”

sir.insert(7, „draga „);

cout << „Dupa inserare: ” << sir << endl;


3. Comparație între stil C și std::string

CaracteristicăStil Cstd::string
Ușurința utilizăriiNecesită mai mult codMai simplu și clar
DimensiuneFixăDinamică
OperațiiFuncții din <cstring>Operatori și metode

4. Complexitatea operațiilor

  • Majoritatea operațiilor cu std::string au o complexitate O(n)O(n)O(n), unde nnn este lungimea șirului.
  • În cazul șirurilor în stil C, operațiile implică parcurgerea șirului până la caracterul ‘\0’.

5. Activități practice pentru elevi

  1. Scrieți un program care citește un șir și determină dacă este palindrom.
  2. Realizați un program care numără toate vocalele dintr-un șir.
  3. Implementați un program care înlocuiește toate aparițiile unui cuvânt dintr-un șir cu alt cuvânt.

6. Scheme logice

  1. Citirea unui șir:
    • Start -> Declarare șir -> Intrare utilizator -> Afișare șir -> Stop.
  2. Concatenare:
    • Start -> Declarați două șiruri -> Concatenați -> Afișați rezultatul -> Stop.

7. Concluzie:

  • Șirurile de caractere sunt esențiale pentru procesarea textului în C++.
  • Alegerea între stilul C și std::string depinde de cerințele programului și de simplitatea codului.
  • Practica cu șiruri ajută la rezolvarea problemelor legate de procesarea textului.

Similar Posts

Lasă un răspuns

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