Supprimer un mot d'une chaîne de caractère

Résolu
hymenoptera Messages postés 37 Statut Membre -  
hymenoptera Messages postés 37 Statut Membre -
Bonjour,

Je pensais trouver la réponse facilement sur le net, mais après plusieurs recherches infructueuses j'ai décidé de poser une question. Je m'excuse par avance si le sujet a déjà été abordé je vous avoue que je ne l'ai pas trouvé !

J'ai un problème assez simple à comprendre :

J'ai une chaîne de caractère par exemple :
char phrase [taille] = "je suis entrain de poser une question"


je veux enlever par exemple "suis entrain de"

Comment je peux faire ça en C ?

Je vous remercie,

--------------------------
NB :

j'expose mon vrai problème peut être qu'il y a une meilleur façon de faire :

j'ai un fichier de paramètre où je veux rentrer des chemins, ex :

parametre.txt

<chemin1> /home/dossier1/ici/blabla
<chemin2> /usr/bin/gcc
<chemin3> /usr/lib/my_lib.so

.etc ....


Je veux récupérer uniquement ce qui se trouve après le <cheminX> et le stocker dans une variable "MY_PATH_X".

Pour élaborer un peu mon fichier de paramètre j'ai mis une condition sur mes lignes pour mettre des commentaires et ignorer les lignes vide avec :

if (strstr(ligne, "#") == NULL && ligne[0] != '\n' )  


j'ai aussi récupérer les lignes qui contiennent <cheminX> à l'aide de
 if (strstr(ligne, "<chemin1>") != NULL) 
strcpy (MY_PATH_1, ligne)


maintenant je veux supprimer le mot <cheminX> pour ne garder que le path...

Il y a quelques modifications à faire notamment pour les commentaires avec #, car comme ce que j'ai fait toute la ligne est ignorée même si le # est écrit au milieu...
mais ça ce n'est pas urgent pour le moment

Si vous avez aussi des suggestions de bonnes pratiques ou des erreurs à éviter je suis preneuse :)

Merci pour votre temps :)

2 réponses

  1. Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   102
     
    Bonjour,

    Pour supprimer un morceaux de texte, il suffit de copier la fin restante du texte à la position du morceau à supprimer.
    La fonction strcpy() n'est pas utilisable ici, on doit utiliser memmove() à la place.
    char  phrase[] = "je suis en train de poser une question";
    char const  *aSupprimer = "en train de ";
    char  *position = strstr( phrase , aSupprimer );
    if ( position ) {
        unsigned  lgSupprimee = strlen( aSupprimer );
        memmove( position , position+lgSupprimee  , 1 + strlen( position+lgSupprimee ) );
    }
    1
  2. hymenoptera Messages postés 37 Statut Membre 1
     
    SUPER !!!!

    Merci beaucoup Dalfab,
    ça marche :)
    0