En aquest tema, aprendrem com manipular strings en C++. Els strings són una part fonamental de la programació, ja que ens permeten treballar amb text. En C++, els strings es poden gestionar de diverses maneres, incloent l'ús de la classe std::string de la biblioteca estàndard. Explorarem les operacions bàsiques i avançades que es poden realitzar amb strings.

Continguts

Introducció a la Classe std::string

La classe std::string és part de la biblioteca estàndard de C++ i proporciona una manera fàcil i segura de treballar amb cadenes de caràcters. A diferència dels arrays de caràcters, std::string gestiona automàticament la memòria i ofereix moltes funcions útils.

Exemple Bàsic

#include <iostream>
#include <string>

int main() {
    std::string salutacio = "Hola, món!";
    std::cout << salutacio << std::endl;
    return 0;
}

Operacions Bàsiques amb Strings

Longitud del String

Per obtenir la longitud d'un string, podem utilitzar el mètode length() o size().

std::string text = "Programació en C++";
std::cout << "Longitud: " << text.length() << std::endl;

Concatenació de Strings

Podem concatenar strings utilitzant l'operador + o el mètode append().

std::string part1 = "Programació ";
std::string part2 = "en C++";
std::string complet = part1 + part2;
std::cout << complet << std::endl;

Accés i Modificació de Caràcters

Podem accedir i modificar caràcters individuals d'un string utilitzant l'operador [] o el mètode at().

std::string text = "Hola";
text[0] = 'h';
std::cout << text << std::endl; // hola

Comparació de Strings

Podem comparar strings utilitzant els operadors de comparació (==, !=, <, >, etc.) o el mètode compare().

std::string str1 = "abc";
std::string str2 = "def";
if (str1 < str2) {
    std::cout << str1 << " és menor que " << str2 << std::endl;
}

Substrings

Podem obtenir substrings utilitzant el mètode substr().

std::string text = "Programació en C++";
std::string sub = text.substr(0, 11); // "Programació"
std::cout << sub << std::endl;

Funcions de Cerca

Podem buscar substrings dins d'un string utilitzant els mètodes find() i rfind().

std::string text = "Programació en C++";
size_t pos = text.find("C++");
if (pos != std::string::npos) {
    std::cout << "'C++' trobat a la posició " << pos << std::endl;
}

Conversió entre Strings i Altres Tipus

Podem convertir strings a altres tipus de dades i viceversa utilitzant les funcions de la biblioteca estàndard com std::stoi, std::stof, std::to_string, etc.

std::string numStr = "123";
int num = std::stoi(numStr);
std::cout << "Número: " << num << std::endl;

float f = 3.14;
std::string floatStr = std::to_string(f);
std::cout << "String: " << floatStr << std::endl;

Exercicis Pràctics

Exercici 1: Concatenació de Noms

Escriu un programa que demani a l'usuari el seu nom i cognom, i després mostri el nom complet.

#include <iostream>
#include <string>

int main() {
    std::string nom, cognom;
    std::cout << "Introdueix el teu nom: ";
    std::cin >> nom;
    std::cout << "Introdueix el teu cognom: ";
    std::cin >> cognom;
    std::string nomComplet = nom + " " + cognom;
    std::cout << "El teu nom complet és: " << nomComplet << std::endl;
    return 0;
}

Exercici 2: Comptar Vocals

Escriu un programa que compti el nombre de vocals en un string introduït per l'usuari.

#include <iostream>
#include <string>

int main() {
    std::string text;
    std::cout << "Introdueix un text: ";
    std::cin >> text;
    int count = 0;
    for (char c : text) {
        if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
            c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
            count++;
        }
    }
    std::cout << "Nombre de vocals: " << count << std::endl;
    return 0;
}

Exercici 3: Invertir un String

Escriu un programa que inverteixi un string introduït per l'usuari.

#include <iostream>
#include <string>

int main() {
    std::string text;
    std::cout << "Introdueix un text: ";
    std::cin >> text;
    std::string invertit = "";
    for (int i = text.length() - 1; i >= 0; i--) {
        invertit += text[i];
    }
    std::cout << "Text invertit: " << invertit << std::endl;
    return 0;
}

Conclusió

En aquesta secció, hem après com manipular strings en C++ utilitzant la classe std::string. Hem vist com realitzar operacions bàsiques com la concatenació, l'accés i modificació de caràcters, la comparació, l'extracció de substrings, la cerca i la conversió entre strings i altres tipus de dades. També hem practicat aquests conceptes amb alguns exercicis pràctics. Amb aquests coneixements, estem preparats per abordar temes més avançats en la manipulació de dades en C++.

© Copyright 2024. Tots els drets reservats