Els strings (o cadenes de caràcters) són una part fonamental de la programació en C++. En aquest tema, aprendrem què són els strings, com es declaren i com es poden manipular. Els strings són essencials per a la manipulació de text i són àmpliament utilitzats en aplicacions de programari.

Continguts

  1. Què és un String?
  2. Declaració i Inicialització de Strings
  3. Funcions Bàsiques per Manipular Strings
  4. Exemples Pràctics
  5. Exercicis Pràctics

  1. Què és un String?

Un string és una seqüència de caràcters. En C++, els strings es poden gestionar de dues maneres principals:

  • Utilitzant arrays de caràcters.
  • Utilitzant la classe std::string de la biblioteca estàndard.

Arrays de Caràcters

Un array de caràcters és una col·lecció de caràcters emmagatzemats en memòria de manera contigua. Els arrays de caràcters en C++ són similars als strings en C.

char str[] = "Hola, món!";

Classe std::string

La classe std::string proporciona una manera més còmoda i segura de treballar amb cadenes de caràcters.

#include <string>

std::string str = "Hola, món!";

  1. Declaració i Inicialització de Strings

Utilitzant Arrays de Caràcters

char str1[] = "Hola, món!";
char str2[20] = "Hola, món!";
char str3[20];
strcpy(str3, "Hola, món!"); // Necessita #include <cstring>

Utilitzant std::string

#include <string>

std::string str1 = "Hola, món!";
std::string str2("Hola, món!");
std::string str3;
str3 = "Hola, món!";

  1. Funcions Bàsiques per Manipular Strings

Amb Arrays de Caràcters

  • strlen(): Retorna la longitud de la cadena.
  • strcpy(): Copia una cadena a una altra.
  • strcat(): Concatena dues cadenes.
  • strcmp(): Compara dues cadenes.
#include <cstring>

char str1[20] = "Hola";
char str2[20] = " món";
char str3[40];

strcpy(str3, str1); // str3 = "Hola"
strcat(str3, str2); // str3 = "Hola món"
int len = strlen(str3); // len = 9
int cmp = strcmp(str1, str2); // cmp < 0 (perquè 'H' < ' ')

Amb std::string

  • length(): Retorna la longitud de la cadena.
  • append(): Concatena una cadena a una altra.
  • substr(): Retorna una subcadena.
  • find(): Cerca una subcadena dins d'una cadena.
#include <string>

std::string str1 = "Hola";
std::string str2 = " món";
std::string str3;

str3 = str1 + str2; // str3 = "Hola món"
int len = str3.length(); // len = 9
std::string sub = str3.substr(0, 4); // sub = "Hola"
size_t pos = str3.find("món"); // pos = 5

  1. Exemples Pràctics

Exemple 1: Concatenació de Strings

#include <iostream>
#include <string>

int main() {
    std::string str1 = "Hola";
    std::string str2 = " món";
    std::string str3 = str1 + str2;

    std::cout << "Concatenació: " << str3 << std::endl;
    return 0;
}

Exemple 2: Cerca de Subcadena

#include <iostream>
#include <string>

int main() {
    std::string str = "Hola, món!";
    size_t pos = str.find("món");

    if (pos != std::string::npos) {
        std::cout << "'món' trobat a la posició: " << pos << std::endl;
    } else {
        std::cout << "'món' no trobat" << std::endl;
    }
    return 0;
}

  1. Exercicis Pràctics

Exercici 1: Longitud de la Cadena

Escriu un programa que llegeixi una cadena de l'usuari i imprimeixi la seva longitud.

#include <iostream>
#include <string>

int main() {
    std::string str;
    std::cout << "Introdueix una cadena: ";
    std::getline(std::cin, str);

    std::cout << "Longitud de la cadena: " << str.length() << std::endl;
    return 0;
}

Exercici 2: Inversió de la Cadena

Escriu un programa que llegeixi una cadena de l'usuari i imprimeixi la cadena invertida.

#include <iostream>
#include <string>
#include <algorithm>

int main() {
    std::string str;
    std::cout << "Introdueix una cadena: ";
    std::getline(std::cin, str);

    std::reverse(str.begin(), str.end());
    std::cout << "Cadena invertida: " << str << std::endl;
    return 0;
}

Exercici 3: Comparació de Cadenes

Escriu un programa que llegeixi dues cadenes de l'usuari i indiqui si són iguals o no.

#include <iostream>
#include <string>

int main() {
    std::string str1, str2;
    std::cout << "Introdueix la primera cadena: ";
    std::getline(std::cin, str1);
    std::cout << "Introdueix la segona cadena: ";
    std::getline(std::cin, str2);

    if (str1 == str2) {
        std::cout << "Les cadenes són iguals." << std::endl;
    } else {
        std::cout << "Les cadenes són diferents." << std::endl;
    }
    return 0;
}

Conclusió

En aquest tema, hem après què són els strings, com es poden declarar i inicialitzar, i com es poden manipular utilitzant funcions bàsiques. Els strings són una eina poderosa en la programació i són essencials per a la manipulació de text. En el proper tema, explorarem com manipular strings de manera més avançada.

© Copyright 2024. Tots els drets reservats