Comment utiliser la fonction substr dans C ++

Comment utiliser la fonction substr dans C ++
La façon de couper n'importe quelle partie d'une chaîne est appelée 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. Le chaîne.H Le fichier de bibliothèque doit inclure 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 le code Visual Studio, installez les extensions nécessaires pour compiler le code source C ++ pour créer le code exécutable. Ici, l'application de code Visual Studio a été utilisée pour compiler et exécuter le code C ++.

Syntaxe

String substr (size_t pos = 0, size_t len ​​= npos) const;

Ici, le premier argument contient la position de départ à partir de là où la sous-chaîne sera démarrée, et le deuxième argument contient la longueur de la sous-chaîne. La fonction renvoie la sous-chaîne si la position de départ et la longueur valides sont données. Les différentes utilisations de cette fonction se sont montré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é attribuée dans 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 avoir exécuté le code.

// Inclure les bibliothèques nécessaires
#inclure
#inclure
int main ()
// définir une variable de chaîne
std :: string originalStr = "Bienvenue à LinuxHint";
// coupe la sous-chaîne en utilisant substr ()
std :: string newstr = originalstr.substr (11,9);
// imprime la chaîne d'origine
std :: cout <<"The original string is :" << originalstr << '\n';
// imprime la sous-chaîne
std :: cout <<"The substring is :" << newstr << '\n';
retour 0;

Sortir:

Selon le code, la chaîne d'origine est 'Bienvenue à 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 revenu en tant que sortie de la fonction substr () après avoir exécuté le code.

Exemple 2: Utilisation de substr () basé sur 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 des multiples 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 en utilisant la fonction find (). La fonction substr () a été utilisée pour générer la sous-chaîne à partir du début de la chaîne à la valeur de position qui sera renvoyée par la fonction find ().

#inclure
#inclure
Utilisation de Namespace Std;
int main ()

std :: string strdata = "j'aime la programmation c ++";
// trouvons la position de "-" en utilisant Str.trouver()
position int = strdata.trouver ("programmation");
// Nous obtiendrons la sous-chaîne jusqu'à ce modèle
std :: string newstr = strdata.substr (0, position);
std :: cout << strData << '\n';
std :: cout << newstr << '\n';
retour 0;

Sortir:

Selon le code, la valeur principale de la chaîne 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 une manipulation des exceptions

La fonction substr () a été utilisée avec une gestion des exceptions dans le code suivant. L'exception sera générée si la position de départ non valide est donnée dans la fonction substr (). Créez un fichier C ++ avec le code suivant pour tester le code. Dans le bloc d'essai, 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 soulèvera une exception et imprimera le message d'erreur.

#inclure
#inclure
int main ()
essayer
// définir une variable de chaîne
std :: string originalStr = "linuxhint";
// coupe la sous-chaîne en utilisant substr ()
std :: string newstr = originalstr.substr (11,9);
// imprime la sous-chaîne
std :: cout <<"The substring is :" << newstr << '\n';

catch (const std :: out_of_range)
std :: Cerr << "The position is out of Range.\n";

retour 0;

Sortir:

Selon le code, la valeur principale de la chaîne est: «Linuxhint"Et la valeur de la position de départ est de 11 qui n'existe pas. Ainsi, l'exception a été générée et le message d'erreur a été imprimé après avoir exécuté le 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 de délimiteur, et la fonction effacer () a été utilisée pour supprimer la chaîne divisée avec le délimiteur de la chaîne principale. La boucle 'While' a utilisé pour trouver toutes les positions du délimiteur dans la chaîne principale et stocker la valeur divisée en tableau vectoriel. Ensuite, les valeurs du tableau vecteur ont été imprimées.

linuxhint @ hp34: ~ $ cat a.cpp
#inclure
#inclure
#inclure
int main()
// définir la chaîne
std :: string stringData = "php: c ++: python:";
// définir le séparateur
std :: string séparateur = ":";
// Déclarer la variable vectorielle
STD :: Vector langues ;
// Déclarer la variable entière
position int;
// Déclarer la variable de chaîne
Std :: String Outstr;
/ *
Diviser la chaîne à l'aide de la fonction substr ()
et ajoutant le mot divisé dans le vecteur
* /
while ((position = stringData.trouver (séparateur)) != std :: string :: npos)
langues.push_back (StringData.substr (0, position));
stringdata.Effacer (0, position + séparateur.longueur());

// imprime tous les mots divisés
pour (const auto et outstr: langues)
std :: cout << outstr << std::endl;

retour 0;

Sortir:

Selon le code, la valeur de chaîne principale est «Php: C ++: Python«Et la valeur du délimiteur est: ': '. La sortie suivante apparaîtra après avoir exécuté le 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.