Savoir si un mot est contenue dans un tableau de string

Fermé
Sarah1609_2710 Messages postés 10 Date d'inscription mardi 12 mai 2020 Statut Membre Dernière intervention 14 mai 2020 - Modifié le 19 mai 2022 à 16:31
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 - 14 mai 2020 à 15:33
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");

} 
}
A voir également:

14 réponses

yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 Ambassadeur 1 568
Modifié le 13 mai 2020 à 09:51
bonjour, "ça ne marche pas": qu'observes-tu?
as-tu fait printf de tes variables?
0
Sarah1609_2710 Messages postés 10 Date d'inscription mardi 12 mai 2020 Statut Membre Dernière intervention 14 mai 2020
13 mai 2020 à 10:41
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
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 Ambassadeur 1 568
13 mai 2020 à 11:29
as-tu déjà fait une programme plus simple, juste pour lire un texte?
0
Sarah1609_2710 Messages postés 10 Date d'inscription mardi 12 mai 2020 Statut Membre Dernière intervention 14 mai 2020
13 mai 2020 à 11:33
Non comment ça ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 Ambassadeur 1 568
13 mai 2020 à 11:49
un petit programme qui lit et qui affiche quelques phrases.
0
Sarah1609_2710 Messages postés 10 Date d'inscription mardi 12 mai 2020 Statut Membre Dernière intervention 14 mai 2020
13 mai 2020 à 11:50
Oui c’est facile
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 Ambassadeur 1 568
13 mai 2020 à 13:59
et cela fonctionne? peux-tu montrer ce programme, pour comparer à celui qui ne fonctionne pas?
0
Sarah1609_2710 Messages postés 10 Date d'inscription mardi 12 mai 2020 Statut Membre Dernière intervention 14 mai 2020
13 mai 2020 à 17:07
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
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 Ambassadeur 1 568
13 mai 2020 à 17:16
peux-tu partager du texte, pas des images, et utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

à quelle ligne as-tu le message d'erreur?
0
Sarah1609_2710 Messages postés 10 Date d'inscription mardi 12 mai 2020 Statut Membre Dernière intervention 14 mai 2020
13 mai 2020 à 17:54
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
Sarah1609_2710 Messages postés 10 Date d'inscription mardi 12 mai 2020 Statut Membre Dernière intervention 14 mai 2020
13 mai 2020 à 17:56
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
Sarah1609_2710 Messages postés 10 Date d'inscription mardi 12 mai 2020 Statut Membre Dernière intervention 14 mai 2020
13 mai 2020 à 17:59
<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
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 Ambassadeur 1 568
13 mai 2020 à 18:52
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
Sarah1609_2710 Messages postés 10 Date d'inscription mardi 12 mai 2020 Statut Membre Dernière intervention 14 mai 2020
13 mai 2020 à 20:11
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
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
14 mai 2020 à 15:33
peux-tu alors marquer la discussion comme résolue?
0