|

Funcții pentru Prelucrarea a Două Șiruri de Caractere sau a unui Șir și unui Caracter din Biblioteca 5


1. Introducere

Biblioteca <cstring> oferă funcții utile pentru manipularea șirurilor de caractere în stil C. Aceste funcții permit copierea, concatenarea, compararea, găsirea unui subșir sau a unui caracter în cadrul unui șir.


2. Funcții pentru două șiruri de caractere

FuncțieDescriereExemplu
strcmp(sir1, sir2)Compară lexicografic două șiruri (returnează 0 dacă sunt egale, <0 dacă sir1 < sir2, >0 dacă sir1 > sir2).strcmp(„abc”, „abd”) -> -1
strncmp(sir1, sir2, n)Compară primii n caractere ale șirurilor.strncmp(„abc”, „abd”, 2) -> 0
strcpy(dest, src)Copiază conținutul lui src în dest.strcpy(dest, „Hello”)
strncpy(dest, src, n)Copiază primii n caractere din src în dest.strncpy(dest, „Hello”, 3)
strcat(dest, src)Concatenează src la sfârșitul lui dest.strcat(dest, ” world!”)
strncat(dest, src, n)Concatenează primii n caractere din src la dest.strncat(dest, ” world!”, 6)
strstr(sir1, sir2)Găsește primul șir sir2 în sir1 (returnează pointer la prima apariție sau NULL).strstr(„Hello world”, „world”)

3. Funcții pentru șiruri și un caracter

FuncțieDescriereExemplu
strchr(sir, c)Găsește prima apariție a caracterului c în șirul sir.strchr(„Hello”, ‘e’) -> pointer la ‘e’
strrchr(sir, c)Găsește ultima apariție a caracterului c în șirul sir.strrchr(„Hello”, ‘l’) -> pointer la ultimul ‘l’
strspn(sir1, sir2)Returnează lungimea secvenței inițiale din sir1 formată doar din caractere din sir2.strspn(„abc123”, „abc”) -> 3
strcspn(sir1, sir2)Returnează lungimea secvenței inițiale din sir1 care nu conține caractere din sir2.strcspn(„abc123”, „123”) -> 3

4. Exemple practice


Exemplu 1: Compararea a două șiruri

#include <iostream>

#include <cstring>

using namespace std;

int main() {

    char sir1[] = „abc”;

    char sir2[] = „abd”;

    int rezultat = strcmp(sir1, sir2);

    if (rezultat == 0) {

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

    } else if (rezultat < 0) {

        cout << „\”” << sir1 << „\” este mai mic lexicografic decât \”” << sir2 << „\”” << endl;

    } else {

        cout << „\”” << sir1 << „\” este mai mare lexicografic decât \”” << sir2 << „\”” << endl;

    }

    return 0;

}


Exemplu 2: Găsirea unui subșir într-un alt șir

#include <iostream>

#include <cstring>

using namespace std;

int main() {

    char sir[] = „Salut lume!”;

    char subSir[] = „lume”;

    char* pozitie = strstr(sir, subSir);

    if (pozitie) {

        cout << „Subsirul \”” << subSir << „\” începe la poziția: ” << (pozitie – sir) << endl;

    } else {

        cout << „Subsirul \”” << subSir << „\” nu a fost găsit.” << endl;

    }

    return 0;

}


Exemplu 3: Găsirea unui caracter într-un șir

#include <iostream>

#include <cstring>

using namespace std;

int main() {

    char sir[] = „Programare C++”;

    char* pozitie = strchr(sir, ‘a’);

    if (pozitie) {

        cout << „Prima aparitie a caracterului ‘a’ este la pozitia: ” << (pozitie – sir) << endl;

    } else {

        cout << „Caracterul ‘a’ nu a fost găsit.” << endl;

    }

    return 0;

}


Exemplu 4: Concatenează două șiruri

#include <iostream>

#include <cstring>

using namespace std;

int main() {

    char sir1[50] = „Salut”;

    char sir2[] = ” lume!”;

    strcat(sir1, sir2);

    cout << „Rezultatul concatenarii: ” << sir1 << endl;

    return 0;

}


Exemplu 5: Calcularea lungimii unei secvențe

#include <iostream>

#include <cstring>

using namespace std;

int main() {

    char sir[] = „123abc456”;

    char caractere[] = „123”;

    int lungime = strspn(sir, caractere);

    cout << „Lungimea secvenței inițiale formate doar din caracterele ‘123’ este: ” << lungime << endl;

    return 0;

}


5. Activități practice pentru elevi

  1. Scrieți un program care verifică dacă un șir conține un anumit caracter.
  2. Realizați un program care înlocuiește toate aparițiile unui subșir într-un șir cu alt subșir.
  3. Implementați un program care elimină toate caracterele dintr-un șir care nu apar într-un alt șir dat.

6. Scheme logice

  1. Compararea șirurilor:
    • Start -> Citire șiruri -> Aplicare strcmp -> Afișare rezultat -> Stop.
  2. Căutarea unui caracter:
    • Start -> Citire șir și caracter -> Aplicare strchr -> Verificare rezultat -> Stop.
  3. Concatenează șiruri:
    • Start -> Citire șiruri -> Aplicare strcat -> Afișare rezultat -> Stop.

7. Concluzie:

  • Funcțiile din <cstring> sunt esențiale pentru prelucrarea șirurilor și caracterelor în stil C.
  • Ele oferă metode eficiente pentru operații de bază precum copierea, concatenarea și căutarea.
  • Practica este esențială pentru a înțelege utilizarea corectă a acestor funcții.

Similar Posts

Lasă un răspuns

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