Strncpy C++ seconde partie de chaine

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.

5 réponses

  1. Contributeur
    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. Contributeur
      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".
      1. Est-ce que tu reçois toujours et uniquement fr: PARIS6 en paramètre? =/
        1. nan mais sa reste des truc du genre, en: LONDON2, fr: NANTES3. C'est toujours cette structure la.
      2. 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) ; 
        
        1. Contributeur
          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.
        2. Sincèrement un grand merci pour cette solution. Effectivement cela fonctionne bien mieux que l'usine à gaz que j'ai mise en place.