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
- Què és un String?
- Declaració i Inicialització de Strings
- Funcions Bàsiques per Manipular Strings
- Exemples Pràctics
- Exercicis Pràctics
- 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.
Classe std::string
La classe std::string
proporciona una manera més còmoda i segura de treballar amb cadenes de caràcters.
- 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!";
- 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
- 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; }
- 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.
Curs de Programació en C++
Mòdul 1: Introducció al C++
- Introducció al C++
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsica
- Variables i Tipus de Dades
- Entrada i Sortida
Mòdul 2: Estructures de Control
Mòdul 3: Funcions
- Introducció a les Funcions
- Paràmetres de Funció i Tipus de Retorn
- Sobrecàrrega de Funcions
- Recursivitat
Mòdul 4: Arrays i Strings
Mòdul 5: Punteres i Referències
- Introducció als Punteres
- Aritmètica de Punteres
- Punteres i Arrays
- Referències
- Assignació Dinàmica de Memòria
Mòdul 6: Programació Orientada a Objectes
- Introducció a la POO
- Classes i Objectes
- Constructors i Destructors
- Herència
- Polimorfisme
- Encapsulació i Abstracció
Mòdul 7: Temes Avançats
- Plantilles
- Gestió d'Excepcions
- Entrada/Sortida de Fitxers
- Biblioteca de Plantilles Estàndard (STL)
- Expressions Lambda
- Multifil