Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

clemzz, badawan17 et 30 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

découpage d'une chaine de caractères en sous-chaines

 
n°12887
tiesto75
Profil : Jeune recrue
Posté le 02-05-2005 à 11:38:16  profilanswer
 

J'ai une chaine de caractères qui est la concaténation de plusieurs chaines on va dire pour simplifier. Par exemple la chaine "remimartinparis" composé du prénom "rémi", du nom "martin" et de la ville "paris". J'aimerais décomposer cette chaine en 3 sous-chaines, prénom/nom/ville, pour la mettre dans une structure. Comment je peux faire ?
 
strcpy copie toute une chaine donc ca m'arrange pas, et strncpy copie une partie d'une chaine à partir du début. Or dans mon cas ca irait pour le prénom, mais pas pour la suite
 
:-(


Message édité par tiesto75 le 02-05-2005 à 12:19:14
n°12889
pote
Profil : Membre
Posté le 02-05-2005 à 13:09:30  profilanswer
 

tu n'as pas moyen d'utiliser strncpy, puis de supprimer les caractères récupérés et de refaire ca jusqu'a que la chaine soit vide?
Par contre, ce qui me parait bizar dans ton truc, c'est que tu ne connais pas le nombre de caractère a récup, si?

n°12890
tiesto75
Profil : Jeune recrue
Posté le 02-05-2005 à 13:19:12  profilanswer
 

on va dire que je connais le nombre de caractères à récupérer à chaque fois, faudrait que je sépare par un caractère particulier dans ma chaine au départ d'ailleurs :/, mais commment je peux supprimer les caractères récupérés comme tu me dis de faire ?

n°12897
pote
Profil : Membre
Posté le 02-05-2005 à 19:02:17  profilanswer
 

je sais pas trop. Je connais pas trop ca. J'ai jamais utilisé.

n°12907
hoover
Mode Thermique
Profil : Membre
Posté le 03-05-2005 à 13:55:36  profilanswer
 

hello,
 
Pourquoi tu te retrouves avec une chaine de ce type : "remimartinparis" ? Tu récupères ces informations comment ?
Car le plus simple c'est de remplir ta structure au fur et a mesure...
 
Sinon pour filtrer ta chaine :
- une chaine de caractères se parcours comme un tableau de caractères : chaine[0] est le 1er caractère, jusqu'à chaine[strlen(chaine)-1]
- si ptr_ch est un pointeur sur ta chaine de caract, tu peux utiliser strncpy pour copier les n premiers caract, puis tu déplaces le pointeur ptr_ch de n : ptr_ch += n;  
Le ptr_ch pointera donc sur le 1er caract de ta seconde sous-chaine. Tu peux donc réutiliser la fonction strncpy pour la suite de ta chaine.
- ne pas oublier qu'une chaine de caract se fini et doit se finir pas un '\0'
 
Y'a pas mal de cours sur les manipulations de chaines, cf : l'annuaire de la programmation.
 
A+


Message édité par hoover le 03-05-2005 à 13:58:41
n°12908
tiesto75
Profil : Jeune recrue
Posté le 03-05-2005 à 13:59:19  profilanswer
 

merci pour la réponse, je vais donc essayer de m'en sortir avec strncpy.
 
En fait je récupères ma chaine par un send, donc ca correspond à un buffer ou je concatène plusieurs champs pour pouvoir à envoyer qu'une trame.


Aller à :
Ajouter une réponse