Chaine de caractères ds liste chainée en C

muslima@ Messages postés 6 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

comment faire pour vérifier si une chaine de caractère est inclus dans l'autre ? est ce que nécessaire de convertir une liste chainée à une chaine de caractère pour la manipuler
voilà mon code :

typedef struct DepF {
char gh[20];
char dr[20];
struct DepF* suivant;
struct DepF* precedent;
};

typedef struct listedf{
DepF *debut;
DepF *fin;
DepF *courant;
int taille;
};

si qqun peut m'aider... merci d'avance

1 réponse

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Bonjour,

    Non, pas besoin de listes.
    Il te suffit d'utiliser la fonction strstr.
    if (strstr(phrase, mot) == 0) {
        /*si mot est compris dans phrase*/
    }
    

    Cdlt,
    0
    1. muslima@ Messages postés 6 Statut Membre
       
      merci bcp pour ta réponse ,
      mais ça ne marche ,il fonctionne de la même façon que strcmp dans mon projet et je n'ai sais pas pourquoi ??

      voilà :

      DepF* inclusion(listedf *l, char*s)
      {
      DepF *r = l->debut;
      int x = 0;
      for (x = 0; x < l->taille; ++x)
      {
      if (strstr(s, r->gh) == 0)
      return r;
      else r = r->suivant;
      }
      return NULL;
      }
      0
    2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Normal ce n'est pas == 0 mais != NULL
      0