Fonction strtok()
Résolu
Pouic182
Messages postés
14
Date d'inscription
Statut
Membre
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je souhaiterais savoir les arguments de la fonction strtok(), si quelqu'un peut m'aider.
En effet, je cherche à remplacer mes ';' par des ' - ', mais lorsque que j'ai des ';' qui se suivent il ne m'affiche pas les ' - '.
Pour plus de faciliter voici un bout mon programme :
-->Programme :
lignes_coupees = strtok (contenu_par_ligne, ";");
while (lignes_coupees != NULL)
{
printf ("%s - ",lignes_coupees);
lignes_coupees = strtok (NULL, ";");
}
Exemple :
132456789;albert;nicolas;;;x
-->me donne : 132456789 - albert - nicolas - x
-->alors que je voudrais avoir : 132456789 - albert - nicolas - - - - x
Par avance merci!
Je souhaiterais savoir les arguments de la fonction strtok(), si quelqu'un peut m'aider.
En effet, je cherche à remplacer mes ';' par des ' - ', mais lorsque que j'ai des ';' qui se suivent il ne m'affiche pas les ' - '.
Pour plus de faciliter voici un bout mon programme :
-->Programme :
lignes_coupees = strtok (contenu_par_ligne, ";");
while (lignes_coupees != NULL)
{
printf ("%s - ",lignes_coupees);
lignes_coupees = strtok (NULL, ";");
}
Exemple :
132456789;albert;nicolas;;;x
-->me donne : 132456789 - albert - nicolas - x
-->alors que je voudrais avoir : 132456789 - albert - nicolas - - - - x
Par avance merci!
Configuration: Windows XP Firefox 2.0.0.20
3 réponses
-
Salut,
Tu veux juste l'affichage ou que ta variable contienne le changement ?
Cdlt -
Salut Fiddy,
Dans un premier temps, je voudrai que ma variable contienne le changement pour pouvoir ensuite l'afficher.
Cordialement. -
Tu pourrais utiliser :
void modif(char *buf, const char *ch, char x, const char *motif){ size_t i,j=0; for(i=0;i<strlen(ch);i++) { if(ch[i]==x){ buf[j]='\0'; strcat(buf,motif); j+=strlen(motif); } else buf[j++]=ch[i]; } }
L'appel à la fonction se ferait par : modif(nouvelleChaine, ancienneChaine, ';', " - " );
Par contre, il faut penser à réaliser l'allocation de nouvelleChaine. Mais bon, ça se fait simplement avec malloc. ;-)).
Cdlt