Bonjour,
Avez vous une idée de la fonction qui cherche l'existence ou le nombre d'occurence d'un mot dans une phrase ( ou texte entière) dans C ?
Bonjour,
Avez vous une idée de la fonction qui cherche l'existence ou le nombre d'occurence d'un mot dans une phrase ( ou texte entière) dans C ?
S'il te faut juste produire l'expression régulière correspondante, tu peux te référer à wiki:
http://fr.wikipedia.org/wiki/Express...lle#Exemples_2
EDIT: suite au edit du message originnel par l'auteur, je laisse quand même ce que j'ai dit. Même si le but recherché n'est plus une expression régulière mais la fonction C correspondante, le wiki en question est quand même bien =)
Sans te donner le code complet (c'est un exercice donc à toi de le faire), l'idée est de comparer caractère par caractère ta chaîne et ton texte, et cela en déplaçant le début de la comparaison et en stockant les résultats au fur et a mesure.
Si le prof ne l'interdit pas tu peux utiliser :
#include<string.h>
int strncmp(const char *, const char *, size_t);
Pour trouver les occurrences (i.e. trouver une sous-chaîne dans une chaîne), il faut plutôt utiliser la fonction strstr.
Pour les compter, on peut s'en servir au sein d'une boucle, en utilisant un compteur.
Effectivement mais ca pose un probleme : cette fonction recherche la premiere occurence, mais revoie un pointeur. Il faudrait donc remprendre la recherche de l'occurence suivante en reutilisant ce pointeur pour recreer une nouvelle chaine et la repasser en parametre à la fonction, c'est faisable mais pas forcement le plus simple a comprendre pour un debutant.
Je suis pourtant du même avis que jeroman. La seule différence entre sa solution et la tienne, c'est que tu proposes de réécrire strstr au lieu de directement l'utiliser (ou, plutôt, tu proposes d'écrire une version non réutilisable de strstr).
Partager