Savoir si un mot est contenue dans un tableau de string

Sarah1609_2710 Messages postés 37 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour
Je rencontre un problème :

def Struct {
Char activite [20];
Int jour;
}Organisation ;
Organisation tab[N]


Je voudrais récupérer chaque activité de tab[i].activite pour savoir si elle contient le mot « gymnastique » la fonction doit me renvoyer vraie meme quand l’activité est matin gymnastique

Voici ce que j’ai essayé mais ça ne marche pas

int i;
char *suiteChaine;

for (i=0;i<N;++i)
{

    scanf("%s",tab[i].activite);
        
suiteChaine =  strstr(tab[i].activite,"gymnastique");
     
if (suiteChaine != NULL)
{
printf("contient le mot gymnastique");
} 

else{

printf("aucun mot ne contient gymnastique\n");

} 
}



Typedef Struct {
Char activite [20];
Int jour;
}Organisation ;
Organisation tab[N]


Je voudrais récupérer chaque activité de tab[i].activite pour savoir si elle contient le mot « gymnastique » la fonction doit me renvoyer vraie meme quand l’activité est matin gymnastique

Voici ce que j’ai essayé mais ça ne marche pas

int i;
char *suiteChaine;

for (i=0;i<N;++i)
{

    scanf("%s",tab[i].activite);
        
suiteChaine =  strstr(tab[i].activite,"gymnastique");
     
if (suiteChaine != NULL)
{
printf("contient le mot gymnastique");
} 

else{

printf("aucun mot ne contient gymnastique\n");

} 
}

14 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, "ça ne marche pas": qu'observes-tu?
    as-tu fait printf de tes variables?
    0
  2. Sarah1609_2710 Messages postés 37 Statut Membre
     
    Ca ne m’affiche rien enfaite... du coup je sais pas si deja ma méthode est juste pour récupérer les mots contenu dans tab[i].activite
    0
  3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    as-tu déjà fait une programme plus simple, juste pour lire un texte?
    0
  4. Sarah1609_2710 Messages postés 37 Statut Membre
     
    Non comment ça ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    un petit programme qui lit et qui affiche quelques phrases.
    0
  7. Sarah1609_2710 Messages postés 37 Statut Membre
     
    Oui c’est facile
    0
  8. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    et cela fonctionne? peux-tu montrer ce programme, pour comparer à celui qui ne fonctionne pas?
    0
  9. Sarah1609_2710 Messages postés 37 Statut Membre
     
    J’ai essayer avec du texte ça ne marche pas non plus ca affiche «  error assignement makes integer from pointer without a cast » voici le lien du code que j’ai mis :
    0
  10. Sarah1609_2710 Messages postés 37 Statut Membre
     
    void question7(confinement tab[N]){
    int i;
    char *suiteChaine=NULL;
    char chaine[]="gymnastique";

    for (i=0;i<N;++i)
    {

    scanf("%s",tab[i].activite);

    suiteChaine = strstr(tab[i].activite,chaine);

    if (suiteChaine != NULL)
    {
    printf("Le texte que vous recherchiez a ete trouve" );
    }

    else{

    printf("Le texte que vous recherchiez n'a pas ete trouve\n");
    }

    }
    0
  11. Sarah1609_2710 Messages postés 37 Statut Membre
     
    Ce code marche mais ne prend pas en compte les mots déjà rentrés dans tab[i].activite plus haut dans le
    Programme et me demande de retaper tab[i].activite or moi je veux comparer tout les mots dans tab[i].activite et savoir si au moins un contient le mot gymnastique
    0
  12. Sarah1609_2710 Messages postés 37 Statut Membre
     
    <code c>

    void question7(confinement tab[N]){

    char *suiteChaine=NULL;

    char chaine[]="exemple";
    char essai[]="exemple en maths";

    suiteChaine = strstr(chaine,essai);

    if (suiteChaine != NULL)
    {
    printf("Le texte que vous recherchiez a ete trouve" );
    }

    else{

    printf("Le texte que vous recherchiez n'a pas ete trouve\n");
    }

    }

    </code>

    Exemple qui marche avec du texte
    0
  13. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    peux-tu choisir le langage "C" quand tu utilises les balises de code?
    tu ne montres qu'une partie de ton programme.
    le programme "demande" comment de retaper tab[i].activite?
    0
  14. Sarah1609_2710 Messages postés 37 Statut Membre
     
    J’ai reussi je met mon programme si ça peut aider quelqu’un :

    for (i=0;i<N:i++){
    printf("\nsaisir l'activite\n");
    scanf("%s",tab[i].activite);
    }
    
    
    
    int i;
    char *suiteChaine=NULL;
    char chaine[]="gymnastique";
    
    for (i = 0; i < N; ++i)
    {
    
    if (tab[i].debutheure!=0 && tab[i].debutminute!=0 ){
    
    
     suiteChaine = strstr(tab[i].activite,chaine);
    
    
        if (suiteChaine != NULL)
        {
            printf("Le texte que vous recherchiez a ete trouve" );
        }
    
        else{
    
        printf("Le texte que vous recherchiez n'a pas ete trouve\n");
        }
    }
    
    }
    
    }
    
    
    
    
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      peux-tu alors marquer la discussion comme résolue?
      0