
C++ Substring : Guide Ultime pour Extraire et Manipuler du Texte
Vous cherchez à maîtriser la manipulation de chaînes de caractères en C++ ? Cet article vous explique tout sur la fonction substr()
, ses utilisations pratiques et des exemples concrets pour améliorer vos compétences en programmation.
Pourquoi utiliser la fonction substr()
en C++ ?
La fonction substr()
est essentielle pour :
- Extraire des portions spécifiques d'une chaîne de caractères.
- Manipuler et transformer des chaînes de texte.
- Analyser et traiter des données textuelles.
Syntaxe de substr()
: comment ça marche ?
La syntaxe de base est la suivante :
string substr (size_t pos, size_t len) const;
Où :
pos
: L'indice du premier caractère à copier.len
: La longueur de la sous-chaîne à extraire.
size_t
est un type entier non signé. La fonction renvoie un objet string
.
Exemples pratiques de substr()
Voici quelques exemples pour illustrer son utilisation :
#include <iostream>
#include <string>
using namespace std;
int main() {
string s1 = "Geeks";
string r = s1.substr(3, 2);
cout << "String is: " << r << endl; // Affiche "ks"
return 0;
}
Dans cet exemple, on extrait les 2 caractères de la chaîne "Geeks" à partir de l'index 3.
Erreurs courantes et comment les éviter avec substr()
Comprendre les erreurs courantes vous fera gagner du temps :
out_of_range
: L'erreur est levée sipos
est supérieur à la longueur de la chaîne.- Index incorrect : N'oubliez pas que l'index commence à 0.
- Longueur excessive : Si
len
est trop grand, la sous-chaîne renvoyée s'arrête à la fin de la chaîne originale.
Points clés à retenir sur substr()
- L'index du premier caractère est 0, pas 1.
- Si
pos
est égal à la longueur de la chaîne, la fonction renvoie une chaîne vide. - Si
len
n'est pas spécifié, la sous-chaîne renvoyée comprend tous les caractères à partir depos
jusqu'à la fin de la chaîne.
Applications concrètes de substr()
pour résoudre des problèmes
Extraire une sous-chaîne après un caractère
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "dog:cat";
int pos = s.find(":");
string sub = s.substr(pos + 1);
cout << "String is: " << sub << endl; // Affiche "cat"
return 0;
}
Extraire une sous-chaîne avant un caractère
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "dog:cat";
int pos = s.find(":");
string sub = s.substr(0, pos);
cout << "String is: " << sub << endl; // Affiche "dog"
return 0;
}
Afficher toutes les sous-chaînes
#include <iostream>
#include <string>
using namespace std;
void subString(string s, int n) {
for (int i = 0; i < n; i++) {
for (int len = 1; len <= n - i; len++) {
cout << s.substr(i, len) << endl;
}
}
}
int main() {
string str = "geek";
subString(str, str.length());
return 0;
}
Maîtriser substr()
: Questions fréquentes (FAQ)
- Comment gérer les erreurs liées à
pos
? Vérifiez toujours quepos
est inférieur à la longueur de la chaîne. - Puis-je utiliser
substr()
avec des chaînes Unicode ? Oui, la fonction fonctionne avec différents encodages, mais assurez-vous de comprendre comment les caractères sont représentés dans votre chaîne. substr()
modifie-t-elle la chaîne originale ? Non,substr()
renvoie une nouvelle chaîne sans modifier l'originale.
En maîtrisant la fonction substr()
, vous débloquerez de nouvelles possibilités pour manipuler le texte en C++, écrire un code plus efficace et résoudre des problèmes complexes. N'hésitez pas à expérimenter et à explorer les différentes applications présentées dans cet article.