Comment utiliser la fonction substr() en C++

How Use Substr Function C



La façon de couper n'importe quelle partie d'une chaîne s'appelle une sous-chaîne. La fonction substr() existe en C++ pour générer une nouvelle chaîne en coupant une partie particulière d'une chaîne. Les chaîne.h Le fichier de bibliothèque doit être inclus pour utiliser cette fonction. Cette fonction a deux arguments. Le premier argument contient la position de départ de la nouvelle chaîne et le deuxième argument contient la longueur de la chaîne. La façon d'utiliser la fonction substr() en C++ a été expliquée dans ce tutoriel.

Prérequis

Avant de vérifier les exemples de ce tutoriel, vous devez vérifier que le compilateur g++ est installé ou non dans le système. Si vous utilisez Visual Studio Code, installez les extensions nécessaires pour compiler le code source C++ afin de créer le code exécutable. Ici, l'application Visual Studio Code a été utilisée pour compiler et exécuter le code C++.







Syntaxe

chaîne substr (size_t pos = 0, size_t len ​​= npos) const;



Ici, le premier argument contient la position de départ à partir de laquelle la sous-chaîne sera démarrée, et le deuxième argument contient la longueur de la sous-chaîne. La fonction renverra la sous-chaîne si la position de départ et la longueur valides sont données. Les différentes utilisations de cette fonction ont été présentées dans la partie suivante de ce tutoriel.



Exemple 1 : Utilisation simple de substr()

L'exemple suivant montre l'utilisation la plus courante et la plus simple de la fonction substr(). Créez un fichier C++ avec le code suivant pour générer une sous-chaîne à partir d'une valeur de chaîne. Une chaîne de plusieurs mots a été affectée à une variable de chaîne. Ensuite, la position de départ valide et la longueur de la sous-chaîne ont dans les valeurs d'argument de la fonction substr(). La chaîne d'origine et la sous-chaîne seront imprimées après l'exécution du code.





//Inclure les bibliothèques nécessaires
#comprendre
#comprendre


entierprincipale() {
//Définir une variable chaîne
les heures::chaîne de caractèreschaîne d'origine='Bienvenue sur Linuxhint';
//Coupe la sous-chaîne à l'aide de substr()
les heures::chaîne de caractèresnouvellestr=originalstr.sous-str (Onze,9);
//Imprime la chaîne d'origine
les heures::cout <<'La chaîne d'origine est :' <<chaîne d'origine<< ' ';
//Imprime la sous-chaîne
les heures::cout <<'La sous-chaîne est :' <<nouvellestr<< ' ';

revenir 0;
}

Sortir:

Selon le code, la chaîne d'origine est ' Bienvenue sur LinuxHint '. 11 a donné comme position de départ de la sous-chaîne qui est la position du caractère 'L', et 9 a donné comme valeur de longueur de la sous-chaîne. ' LinuxHint ' est retourné en tant que sortie de la fonction substr() après l'exécution du code.



Exemple 2 : Utilisation de substr() en fonction de la position d'une chaîne spécifique

Le code suivant générera la sous-chaîne après avoir recherché la position de la chaîne particulière. Créez un fichier C++ avec le code suivant pour tester le code. Une valeur de chaîne de plusieurs mots a été définie dans le code. Ensuite, la position d'une chaîne particulière est recherchée dans la chaîne principale à l'aide de la fonction find(). La fonction substr() a été utilisée pour générer la sous-chaîne en partant du début de la chaîne jusqu'à la valeur de position qui sera renvoyée par la fonction find().

//Inclure les bibliothèques nécessaires
#comprendre
#comprendre
à l'aide de espace de nomsles heures;

entierprincipale()
{
les heures::chaîne de caractèresstrData= « J'aime la programmation C++ »;

// Trouvons la position de '--' en utilisant str.find()
entierposition=strData.trouve('la programmation');

// Nous obtiendrons la sous-chaîne jusqu'à ce modèle
les heures::chaîne de caractèresnouvellestr=strData.sous-str(0, position);

les heures::cout <<strData<< ' ';
les heures::cout <<nouvellestr<< ' ';

revenir 0;
}

Sortir:

Selon le code, la valeur de chaîne principale est, J'aime la programmation C++ et la valeur de la chaîne de recherche est, ' la programmation' qui existe dans la chaîne principale. Donc, la sortie est, ' J'aime C++ ‘ après avoir exécuté le code.

Exemple 3 : Utilisation de substr() avec la gestion des exceptions

La fonction substr() a été utilisée avec la gestion des exceptions dans le code suivant. L'exception sera générée si la position de départ invalide est donnée dans la fonction substr(). Créez un fichier C++ avec le code suivant pour tester le code. Dans le bloc try, une valeur de chaîne d'un mot a été attribuée et une position de départ non valide a été utilisée dans la fonction substr() qui déclenchera une exception et affichera le message d'erreur.

//Inclure les bibliothèques nécessaires
#comprendre
#comprendre

entierprincipale() {
essayer{

//Définir une variable chaîne
les heures::chaîne de caractèreschaîne d'origine='Linuxhint';
//Coupe la sous-chaîne à l'aide de substr()
les heures::chaîne de caractèresnouvellestr=originalstr.sous-str (Onze,9);
//Imprime la sous-chaîne
les heures::cout <<'La sous-chaîne est :' <<nouvellestr<< ' ';
}
attraper (constles heures::hors_plage) {
les heures::cerr << « La position est hors de portée. ';
}
revenir 0;
}

Sortir:

Selon le code, la valeur de chaîne principale est, LinuxHint et la valeur de la position de départ est 11 qui n'existe pas. Ainsi, l'exception a été générée et le message d'erreur a été imprimé après l'exécution du code.

Exemple 4 : Utilisation de substr() pour diviser la chaîne

L'exemple suivant montre l'utilisation de la fonction substr() pour diviser une chaîne en fonction d'un délimiteur. La fonction find () a été utilisée pour rechercher la position du délimiteur et la fonction d'effacement () a été utilisée pour supprimer la chaîne divisée avec le délimiteur de la chaîne principale. La boucle « while » a été utilisée pour trouver toutes les positions du délimiteur dans la chaîne principale et stocker la valeur fractionnée dans le tableau vectoriel. Ensuite, les valeurs du tableau vectoriel ont été imprimées.

//Inclure les bibliothèques nécessaires
#comprendre
#comprendre
#comprendre

entierprincipale(){
//Définir la chaîne
les heures::chaîne de caractèresstringData= 'PHP:C++:Python:';
//Définir le séparateur
les heures::chaîne de caractèresséparateur= ':';
//Déclarer la variable vectorielle
les heures::vecteurlangues{};
//Déclarer la variable entière
entierposition;
//Déclarer la variable chaîne
les heures::chaîne de caractèresoutstr;
/ *
Divisez la chaîne à l'aide de la fonction substr()
et en ajoutant le mot divisé dans le vecteur
* /

tandis que ((position=stringData.trouve(séparateur)) !=les heures::chaîne de caractères::npos) {
langues.repousser(stringData.sous-str(0, position));
stringData.effacer(0, position+séparateur.longueur());
}
//Imprime tous les mots fractionnés
pour (const auto &outstr:langues) {
les heures::cout <<outstr<<les heures::fin;
}
revenir 0;
}

Sortir:

Selon le code, la valeur de la chaîne principale est PHP:C++:Python et la valeur du délimiteur est, ' : ' . La sortie suivante apparaîtra après l'exécution du script ci-dessus.

Conclusion

Le but principal de l'utilisation de la fonction substr() est de récupérer une sous-chaîne à partir d'une chaîne en mentionnant la position de départ et la longueur de la sous-chaîne. Les différentes utilisations de cette fonction ont été expliquées dans ce tutoriel en utilisant plusieurs exemples pour aider les nouveaux utilisateurs de C++ à l'utiliser correctement dans leur code.