Fonction StrSep dans le langage C

Fonction StrSep dans le langage C
Les chaînes sont un élément fondamental de la programmation car il est possible d'envoyer des messages à l'utilisateur, d'afficher les résultats et de lire les fichiers via eux. Ils sont également l'une des méthodes d'entrée et de sortie de données.

La manipulation courante des chaînes et des fonctions qui les traitent est très importante car nous les utilisons toujours dans une partie du programme que nous développons.

Dans cet article de Linux Hint, vous apprendrez à utiliser la fonction StrSep () pour diviser les chaînes en fonction de Demiter.

Nous vous montrerons la syntaxe et la description théorique de l'appel du fonctionnement de StrSep (), de ses arguments d'entrée et de sortie, et les types de données acceptés pour chacun de ces arguments.

Nous appliquons ensuite ce que nous avons appris dans les exemples pratiques qui vous montrent comment implémenter la fonction strSep () pour fragmenter les chaînes en utilisant les extraits de code et les images.

Syntaxe de la fonction strsep () dans le langage C

char * strSep (char ** restrect stringp, const char * restrict délim);

Description de la fonction strSep () dans le langage C

La fonction strsep () fragmente une chaîne à partir d'un délimiteur prédéfini.
Cette fonction fragmente la chaîne qui est indiquée par l'argument d'entrée StringP et convertit ses fragments en nouvelles chaînes, tous se terminant par un caractère nul.

Chaque nouvelle chaîne commence à l'adresse qui est renvoyée dans le pointeur de sortie et se termine où le strsep () rencontre le délimiteur spécifié dans Delim. Si la fonction trouve un délimiteur, il le remplace par un caractère nul, marquant la fin de la nouvelle chaîne.

Lorsque la fonction revient de son appel, le pointeur StringP est automatiquement réglé au début du fragment, en suivant le caractère de délimiteur qu'il a trouvé. De cette façon, le pointeur StringP est prêt à récupérer le fragment suivant dans l'appel de fonction suivante. Ce processus est répété pour chaque appel jusqu'à ce que strsep () ne trouve plus de délimiteurs et renvoie un pointeur nul.

Il est important de noter que cette fonction modifie irréversiblement la chaîne d'entrée en remplaçant les délimiteurs par des caractères nuls.

La fonction strsep () est définie dans la «chaîne.en-tête h ”. Pour l'utiliser et les autres fonctions de gestion des chaînes, nous devons l'inclure dans notre code comme suit:

#inclure

Comment séparer une chaîne en plusieurs fragments en utilisant la fonction strsep () dans le langage C

Dans cet exemple, nous créons une chaîne qui contient le «Aujourd'hui est une excellente journée pour la programmation”Expliquez et utilisez la fonction strsep () pour fragmenter le contenu et sortir chacune des chaînes nouvellement obtenues sur une nouvelle ligne dans la console de commande.

Le délimiteur que nous utilisons dans l'argument d'entrée Delim est le caractère spatial (««), donc la chaîne qui est indiquée par l'argument d'entrée stringp est fragmentée mot par mot.

Dans la fonction Main (), nous déclarons la chaîne "S_IN" avec la "Aujourd'hui est une excellente journée pour la programmation«Phrase et le pointeur« in_ptr ». Ce pointeur est l'argument d'entrée stringp de la fonction strsep ().

Nous déclarons également le «String del» avec le caractère d'espace qui est l'argument d'entrée de délire de la fonction strsep () et le caractère délimiteur attribué.

Enfin, nous déclarons le pointeur «O_PTR» qui sert de l'argument de sortie de strsep (). Ce pointeur pointe vers le fragment récupéré et sert l'argument d'entrée à la fonction printf () pour l'afficher sur la console de commande.

Ensuite, nous appelons la fonction strsep () en passant le pointeur "in_ptr" comme premier argument, la chaîne del comme deuxième argument et le pointeur "O_PTR" comme argument de sortie.

Cet appel est passé à l'intérieur d'une boucle de temps où la condition d'échappement est que strsep () renvoie un pointeur nul, ce qui signifie qu'il n'y a plus de délimiteurs.

Voici le code de cet exemple:

#inclure
#inclure
vide main ()

char s_in [50] = "aujourd'hui est une excellente journée de programmation";
char del [20] = "";
char * in_ptr = s_in;
charr * o_ptr;
Pendant (o_ptr != Null)
o_ptr = strsep (& in_ptr, del);
printf ("% s \ n \ n", o_ptr);

Comme le montre la figure suivante, StrSep () sépare la chaîne «S_IN» mot par mot, créant une nouvelle chaîne à chaque fois, chacune affichée sur une nouvelle ligne dans la console de commande:

Conclusion

Dans cet article de Linux Hint, nous vous avons montré comment utiliser la fonction strSep () qui est l'une des fonctions définies dans la «chaîne.en tête de H ”pour traiter les cordes.

Nous avons discuté de l'explication théorique de son opération, de sa syntaxe et de sa méthode d'appel. Nous vous avons également montré les arguments d'entrée et de sortie et le type de données qu'ils acceptent chacun.

Pour vous aider à comprendre comment fonctionne cette fonction, nous avons également examiné un exemple pratique où nous vous avons montré comment déclarer les pointeurs nécessaires qui sont utilisés comme arguments d'entrée et de sortie pour cette fonction en utilisant les fragments de code et les extraits qui sont expliqués étape par étape par. étape, avec la méthode d'appel.