Strncpy C++ seconde partie de chaine

Fermé
JoeC++ - 13 juin 2011 à 13:42
baladur13 Messages postés 46400 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 27 avril 2024 - 15 juin 2011 à 10:51
Bonjour,

A la lecture d'un tag 2D je reçois la chaine de caractères suivante "fr: PARIS6". Je ne doit traiter que "PARIS6".

Je dois donc découper mon char* de façon à ne conserver que "PARIS6".

J'ai utilisé la fonction strncpy() je récupéré bien "fr: " mais c'est la seconde partie de la chaine que je veux avoir. Comment arriver à avoir un char* contenant uniquement "PARIS6" ?

Merci de vos réponses.
A voir également:

5 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
Modifié par fiddy le 14/06/2011 à 10:54
Beh ma réponse se trouve au premier post...
Soit tu fais : char *p=tab+4;
Soit tu remplaces tab par tab+4 dans ton strncpy.
Si c'est pas assez précis, poste-nous ton code entre deux balises "code" (à droite du bouton "souligné", et je t'indiquerai l'implémentation.
Cdlt,

Google is your friend
1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
Modifié par fiddy le 14/06/2011 à 10:54
Bonjour,
Cela ne serait pas plus simple de prendre un pointeur et de le faire pointer sur le P ?
Cela donnerait par exemple : char *p=tab+4;
Avec strncpy, sinon il faut utiliser le même principe : dans la chaîne source, il faut mettre tab+4 au lieu de tab. (tab étant la chaîne de caractère qui vaut "fr: PARIS6".
0
Elle est ou la réponse de fiddy ?? Je suis preneur aussi d'une solution !
0
baladur13 Messages postés 46400 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 27 avril 2024 13 224
Modifié par baladur13 le 15/06/2011 à 11:24
Bonjour
Pour info..
Les commentaires mis sur la question initiale ne sont visibles que par les membres inscrits..
J'ai donc transformé le commentaire en réponse
https://forums.commentcamarche.net/forum/affich-22352776-strncpy-c-seconde-partie-de-chaine#1
0
BigFattyOne
14 juin 2011 à 01:01
Est-ce que tu reçois toujours et uniquement fr: PARIS6 en paramètre? =/
0
nan mais sa reste des truc du genre, en: LONDON2, fr: NANTES3. C'est toujours cette structure la.
0

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

Posez votre question
Alors voila,
//Ici j'ai le contenu de base du tag (fr: PARIS6 pour cet exemple) récupéré depuis le catalogue général. 
char* fullbody = (char*)getContext()->findData("body_505",NULL) ; 


//ici il faut travailler char* body, pour avoir la valeur "PARIS6" 
char* body = ... 


//Au final,je met le char* final dans le catalogue local (body le char* final qui vaut "PARIS6") 
getContext()-> 
getMasterContext()>replaceMemData("KEY_MUST_GNFC_CONTENT",(char*)body) ; 
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
14 juin 2011 à 10:56
Ben, comme je t'ai dit : char *body = fullbody+4;
Après tout dépend si tu veux un tableau ou si pointer sur la chaîne fullbody+4 suffit.
0
Sincèrement un grand merci pour cette solution. Effectivement cela fonctionne bien mieux que l'usine à gaz que j'ai mise en place.
0