Trouver un mot dans une chaine en C (urgent)

cs_Buzu Messages postés 68 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 14 septembre 2007 - 23 août 2004 à 12:00
loic911 Messages postés 24 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 10 mai 2005 - 9 juin 2005 à 20:38
Salut!

Voila : y a t-il une fonction en c qui permette de dire s'il y a un mot dans une chaine ou pas?

Par exemple la chaine "Bonjour je suis moi" et je voudrais savoir si le mot "Bonjour" est dedans...

Merci!

9 réponses

DevGizmo Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 27 février 2007 1
23 août 2004 à 12:08
"strstr" de la lib c standard
inclus dans string.h
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
23 août 2004 à 18:50
d'ailleurs c'est zarbi, C++ pour les nuls (c'est moi!) dit a ca sujet:

int strstr

sans les arguments de la fonction.un petit tour sur msdn ne ferait pas de mal.
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
23 août 2004 à 20:51
question qui peut paraitre con, mais sil on a la chaine suivante:
"bonjour tout lemonde !!!"

strstr reconnaitra "monde"?
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
23 août 2004 à 23:00
ben,t'as qu'a essayer, c'est qd meme pas dur!
le tps que tu poses la question t'aurais pu le savoir...

char* strstr (const char* szSearch, const char *szFor);

BON! en fait, on peut pas dire que ca soit très utile, le listing:

#include "stdafx.h"
#include
#include <stdlib.h>
#include <string.h>

int main(int argc, char* argv[])
{
char * str1="bonjour toutlemonde";
char * str2="z";
char *str3 =strstr(str1,str2);
if (str3) //verifie que str2 existe, sinon , qd il n'a pas trouvé ca plante BIEN!
cout << str3;
system("PAUSE");
return 0;
}

affiche "monde", mais c'est tout (pas la position)

MAIS en relisant le msg de buzu, je vois que c'st pile ca qu'il cherchait!! cOol, non????

Ciao!
0

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

Posez votre question
loic911 Messages postés 24 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 10 mai 2005
9 juin 2005 à 18:42
bonjour,

il y a t'il moyen de savoir combien de fois se trouve la chaine 2 dans la chaine 1.

Exemple: "J'ai un chien, un très gentil chien"

J'aimerais qu'il détecte si il y a "chien" (strstr peut le faire) mais également combien de fois il est dedans (ici, 2 fois...)



Ca existe???
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
9 juin 2005 à 19:11
heu pas comme ca.

a la limite ce que tu pourrais faire c'est le faire une fois, recopier
ta chaine a partir de l'endroit ou tu as trouvé la 1ere occurence,
recommencer avec celle la..; je sens des mallocs en pagaille

_______________________


Omnia vincit labor improbus
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 juin 2005 à 19:24
Pas de malloc pour ca tout de même:



int n = 0;

char phrase[] = "J'ai un chien, un très gentil chien";

char* p = phrase;

while(p = strstr(p, "chien"))

{

n++;

p++; // ou bien p += sizeof "chien", c'est toi qui voit

}

n contient ici le nombre d'occurences
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
9 juin 2005 à 19:46
oups voui pas bete, je pense jamais aux pointeurs, en C c'est bete qd meme ^^

_______________________


Omnia vincit labor improbus
0
loic911 Messages postés 24 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 10 mai 2005
9 juin 2005 à 20:38
Immense merci!!!
0
Rejoignez-nous