Decouper une chaine de caractere en 2

Résolu
Atomos83 Messages postés 33 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 10 novembre 2006 - 13 oct. 2005 à 19:35
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 - 13 oct. 2005 à 21:40
Bonjour, j'aimerais connaitre la commande permettant de couper une
chaine de caractère en 2, j'ai trouver strtok() que j'utilise comme
suit :



# define SEP ":"

char *recup_acl[100]

recup_acl[i]=strtok(SEP,ACL[i].unDroit);



ACL[i].unDroit est de la forme var1:var2



grace a strtok, je recupere var1, mais j'aimerais moi recuperer var2 !!!



Quelqu'un a i une idée !?

Merci d'avance !!! AtomoS

6 réponses

mezaya Messages postés 202 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 6 mars 2010
13 oct. 2005 à 20:50
une chaine de caractères est rien d'autre qu'un tableau de caratère.





int j=0,jj=0;

while( ACL[i].unDroit[j] != ':' ) j++; // ici je me dans la chaine jusqu'au caractère ':'

j++; // j'avance d'un caractère pour ne pas copier le caratère ':'

while( ACL[i].unDroit[j+jj] !='\0' )

{

recup_acl[jj] = ACL[i].unDroit[j+jj]; // je copie le reste de la chaine dans recup_acl

j++;

}

recup_acl[jj] = '\0'; // je termine pas le caratère fin de chaine pour avoir une chaine valide.



si tu veut copier les 2 variables tu peut modifier le code comme ceci :





int j=0,jj=0;



while( ACL[i].unDroit[j] != ':' )

{

recup_acl_gauche[j] = ACL[i].unDroit[j]; // copie la 1er variable dans recup_acl_gauche

j++;

}

recup_acl_gauche[jj] = '\0'; // fin de chaine



j++; // je ne copie pas le ':'



while( ACL[i].unDroit[j+jj] !='\0' )

{

recup_acl_droite[jj] = ACL[i].unDroit[j+jj]; // copie

j++;

}

recup_acl_droite[jj] = '\0'; // fin de chaine



Au final recup_acl_gauche var1 et recup_acl_droite var2

Voili,Voilou
3
mezaya Messages postés 202 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 6 mars 2010
13 oct. 2005 à 19:54
int j=0,jj=0;



while( ACL[i].unDroit[j] != ':' ) j++;

j++;

while( ACL[i].unDroit[j+jj] !='\0' )

{

recup_acl[jj] = ACL[i].unDroit[j+jj];

j++;

}



recup_acl[jj] = '\0';






Voili,Voilou
0
Atomos83 Messages postés 33 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 10 novembre 2006
13 oct. 2005 à 20:17
si tu pouvais m'expliquer un peu s'a ne serait pas de refus, j'ai du mal a comprendre la :s merci !
0
Atomos83 Messages postés 33 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 10 novembre 2006
13 oct. 2005 à 20:39
En faite, j'aimerais pouvoir entrer les 2 partis de la chaine dans 2 variables
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Atomos83 Messages postés 33 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 10 novembre 2006
13 oct. 2005 à 21:09
Merci a toi, j'esayerais sa demain, la j'ai la tete en vrac, je te tient au jus , merci encore :p :)
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
13 oct. 2005 à 21:40
Matt...
0
Rejoignez-nous