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