[C++] Couper un mot

Résolu
Leahkim Messages postés 3219 Statut Membre -  
Leahkim Messages postés 3219 Statut Membre -
Bonjour,

me revoila avec mes problemes de code !

cette fois je veux faire l'inverse !

j'ai donc fait une variable comme avant:

sprintf (nomsortie,"%s%s",nomentree,cod);

je me retrouve donc avec nomsortie="nomentreecod".

dans un autre programme qui récupère le nom dans une variable nomentree, je voudrais retrouver son nom d'origine.

c'est a dire partir de nomentreecod, arriver a nomentree.

Comment fait t'on pour soit soustraitre 3 caractere a une string, ou pour lui oter une autre string ?
Configuration: Windows Vista
Safari 525.17

5 réponses

  1. Mahmah Messages postés 497 Statut Membre 125
     
    Ah mais oui mais là tu fais du vilain, tu tapes dans la mémoire qui n'est pas à toi.

    nomentree[ strlen( nomentree) - strlen( cod ) + 1 ] = '\0'; 


    M.
    0
  2. Mahmah Messages postés 497 Statut Membre 125
     
    Re

    Si c'est juste pour couper violemment :

    nomsortie[ strlen( nomsortie ) - strlen( cod ) + 1 ] = '\0';


    (A vérifier le +1, j'oublie toujours ^^)

    Ceci dit c'est du C et non du C++, acceptable quand même ?

    M.
    -2
  3. Leahkim Messages postés 3219 Statut Membre 281
     
    je vais essayer et je reviens te dire ce que ça a donné
    -2
  4. Leahkim Messages postés 3219 Statut Membre 281
     
    non, ça ne marche malheuresmeent pas:

    #include <stdio.h>
    #include <string.h>

    main()
    {

    char nomentree[20]="TRUC.doccod";
    char nomsortie[30]="000";
    char cod[4]="cod";
    int size_t=0;

    nomsortie[ strlen( nomentree ) - strlen( cod ) + 1 ] = '\0';

    printf ("%s",nomsortie);

    system("pause");
    }

    et le programme m'affiche 000...

    une autre idee ?
    -2
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Leahkim Messages postés 3219 Statut Membre 281
     
    bon, ben j'ai toruvé une autre solution ! (CCM me fait trouver mes solutions tout seul mdr.

    char nomentree[20]="TRUC.doccod";
    char nomsortie[30]="000";
    char cod[4]="cod";
    int size_t=0;

    size_t=strlen (nomentree);

    strncpy(nomsortie,nomentree,(size_t-3));

    printf("%s",nomsortie);

    voila, j'ai donc soustrait 3 caractère a nomentree, et je l'ai mis dans nom sortie. C'est plus long, mais ça fonctionne

    merci a toi !
    -2