Strncpy C++ seconde partie de chaine

JoeC++ -  
baladur13 Messages postés 47771 Date d'inscription   Statut Modérateur Dernière intervention   -
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   Statut Contributeur Dernière intervention   1 846
 
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   Statut Contributeur Dernière intervention   1 846
 
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
Arthi
 
Elle est ou la réponse de fiddy ?? Je suis preneur aussi d'une solution !
0
baladur13 Messages postés 47771 Date d'inscription   Statut Modérateur Dernière intervention   13 683
 
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
 
Est-ce que tu reçois toujours et uniquement fr: PARIS6 en paramètre? =/
0
JoeC++
 
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
JoeC++
 
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   Statut Contributeur Dernière intervention   1 846
 
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
JoeC++
 
Sincèrement un grand merci pour cette solution. Effectivement cela fonctionne bien mieux que l'usine à gaz que j'ai mise en place.
0