logo

Fonction Strsep() en C

Introduction:

Cordes sont un élément essentiel de la programmation , car ils permettent de communiquer avec utilisateurs, afficher les résultats et lire les fichiers . Il s’agit d’un type de mécanisme d’entrée et de sortie de données. Depuis cordes sont constamment utilisés dans une certaine mesure dans les programmes que nous créons, une gestion efficace des chaînes et des fonctions qui les traitent est cruciale.

Ce tutoriel va vous apprendre à diviser des textes en fonction de délimiteurs à l'aide du Méthode strsep() .

Nous passerons en revue le saisir et arguments de sortie pour strsep() , c'est syntaxe et explication théorique , ainsi que les types de données autorisés pour chacun de ces arguments.

Nous mettons ensuite en pratique ce que nous avons appris en utilisant des extraits de code et des graphiques pour fragmenter les chaînes à l'aide de l'outil Méthode strsep() , ce qui est démontré dans les exemples pratiques.

Syntaxe de la fonction Strsep() en langage C :

 char *strsep(char **restrict stringp, const char *restrict delim); 

Une explication de la fonction Strsep() en C :

  • UN chaîne est brisé à l'aide du Fonction strsep() , en commençant par un délimiteur prédéterminé.
  • Le chaîne pointé par le entrée de chaîne L'argument est divisé par cette fonction, et les morceaux sont ensuite combinés pour former de nouvelles chaînes qui se terminent toutes par le caractère nul.
  • Chaque nouvelle chaîne commence au adresse donné par le pointeur de sortie et se termine là où le délimiteur spécifié par je partage et strsep() Lorsqu'un délimiteur est trouvé, la fonction le remplace par un caractère nul pour indiquer la fin de la nouvelle chaîne.
  • Le pointeur de chaîne est automatiquement défini au début du fragment après la découverte du caractère délimiteur lorsque la fonction revient de son appel. Le pointeur de chaîne est maintenant prêt à obtenir le fragment suivant dans l'appel de fonction suivant. Jusqu'à strsep() manque de délimiteurs et renvoie un pointeur nul. Par conséquent, ce processus est répété pour chaque appel.

Il est important de noter que cette fonction modifie irrévocablement le texte saisi en remplaçant les délimiteurs par des caractères nuls. Le en-tête 'string.h' contient la définition du Fonction strsep() . Nous devons l'incorporer dans notre code de la manière suivante afin de l'utiliser ainsi que les autres fonctions de gestion de chaînes :

 #include 

Comment utiliser la fonction Strsep() du langage C pour diviser une chaîne en plusieurs fragments

Dans cet exemple, l'expression 'Commençons la programmation' est créé sous forme de chaîne et son contenu est divisé à l'aide du Fonction strsep() . Chacune des chaînes nouvellement créées est ensuite produite sur une ligne distincte dans le terminal de commande . La chaîne pointée par le chaîne Le paramètre d'entrée est divisé mot par mot puisque le délimiteur que nous utilisons dans l'argument d'entrée delim est le caractère espace (' ') .

scan.chaîne suivante java

Nous déclarons le 'péché' chaîne avec le texte 'Commençons la programmation' et le pointeur 'in_Ptr' dans le fonction principale . Le Chaîne de la fonction strsep() L'argument d'entrée est ce pointeur.

Comme le argument d'entrée de délimitation pour le Méthode strsep() et le caractère délimiteur désigné, nous déclarons en outre le 'chaîne del' avec le caractère spatial. Nous déclarons ensuite le Pointeur 'o_Ptr' , qui est utilisé comme Argument de sortie de strsep() . Le Méthode printf() utilisera ce pointeur comme argument d'entrée pour afficher le fragment récupéré sur la console de commande.

Après cela, après avoir fourni le de la chaîne comme premier argument, le 'in_Ptr' pointeur comme deuxième paramètre, et le Pointeur 'o_Ptr' comme argument de sortie, nous appelons le Fonction strsep() . Cet appel est effectué à l'intérieur d'un boucle while avec la condition d'échappement qu'il n'y a plus de délimiteurs lorsque strsep() renvoie un pointeur nul.

Le code de cet exemple est le suivant :

parcours dans l'ordre
 #include #include int main() { char s_in[50] = 'Let's start programming '; char del[20] = ' '; char* in_Ptr = s_in; char* o_Ptr; while ((o_Ptr = strsep(&in_Ptr, del)) != NULL) { printf('%s
', o_Ptr); } return 0; } 

Strep() divise le 'péché' chaîne mot par mot, produisant à chaque fois une nouvelle chaîne, qui est ensuite affichée sur une nouvelle ligne dans la console de commande, comme indiqué ci-dessous ;

Sortir:

 Let's start programming 

Conclusion

Dans cet article, nous avons montré comment traiter les chaînes à l'aide de l'outil Fonction strsep() , une des fonctions spécifiées dans le 'chaîne.h' entête. Nous avons parlé de la justification théorique de son syntaxe, technique d'appel , et opération . De plus, nous avons démontré le type de données acceptées par chaque argument d’entrée et de sortie.