Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2566 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [RESOLU] Recherche d'un string dans un tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Recherche d'un string dans un tableau

n°1163331
_p1c0_
Posté le 28-07-2005 à 15:50:57  profilanswer
 

Bonjour à tous,
 
je voudrais juste savoir s'il y a une fonction qui fait ca ou s'il faut que je la code moi même!
 
J'ai un tableau :
 
string actions[] = {"taper","lancer","jouer"}
 
et un string mon_action.
 
Je cherche une fonction du genre bool rechercher(mon_action,actions) et qui me renvoie vrai si la chaine mon_action est présente dans le tableau actions...
 
C'est pas dur à coder mais si ca existe, c'est surement mieux de prendre une fonction toute faite!
 
Merci d'avance pour votre aide.
 
p1c0.


Message édité par _p1c0_ le 29-07-2005 à 10:53:31

---------------
-_- http://www.scienceshopping.com -_-
mood
Publicité
Posté le 28-07-2005 à 15:50:57  profilanswer
 

n°1163571
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-07-2005 à 16:53:46  profilanswer
 

utilise donc un conteneur de la STL, genre vector<>, qui possède toutes les méthodes nécessaires, plutot qu'un tableau C-Style (machin[])


---------------
J'ai un string dans l'array (Paris Hilton)
n°1163601
theshockwa​ve
I work at a firm named Koslow
Posté le 28-07-2005 à 17:01:32  profilanswer
 

si tu es contraint d'utiliser des tableaux, tu peux aussi utiliser std::find() avec les adresses de début et de fin de tableau en guise d'itérateur de début et de fin respectivement.

n°1163711
_p1c0_
Posté le 28-07-2005 à 17:50:08  profilanswer
 

Non non, j'ai fini utiliser un vector, ca me parait mieux...
 
J'ai codé une boucle pour rechercher mais je me pose la question suivante :
 
pourquoi c'est mieux d'utiliser un iterator plutot que de faire vec[i] ?? Ca va vraiment plus vite?
 
Merci pour vos explications...


---------------
-_- http://www.scienceshopping.com -_-
n°1163715
theshockwa​ve
I work at a firm named Koslow
Posté le 28-07-2005 à 17:53:23  profilanswer
 

non, utiliser un iterator n'ira pas plus vite que manipuler des pointeurs, par contre, manipuler un std::vector est largement plus aisé (et flexible) que d'avoir a se servir d'un tableau string x[]

n°1163720
_p1c0_
Posté le 28-07-2005 à 17:58:04  profilanswer
 

Oui mais dans mon cas, le nombre de string contenues par le vector est toujours le même donc si je fais :
 

Code :
  1. for(int i=0; i<vec.size(); i++){
  2.   if(strcmp(vec[i].c_str(),chaine.c_str()) == 0)
  3.     return true;
  4. }
  5. return false;


 
ou vec est un vector <string> et chaine un string
c'est suffisant non?


Message édité par _p1c0_ le 28-07-2005 à 17:59:11

---------------
-_- http://www.scienceshopping.com -_-
n°1163731
theshockwa​ve
I work at a firm named Koslow
Posté le 28-07-2005 à 18:05:03  profilanswer
 

:heink:
 
pourquoi passes-tu par des strcmp tout droit issus du C alors que tu as de beaux opérateurs définis sur tes strings ?
Et les itérateurs ne sont pas là que pour les fonctions de la stl :o
 
remplace-moi ca par un truc du style :

Code :
  1. for(std::vector<std::string>::const_iterator i=vect.begin(); i!=vec.end(); i++){
  2.   if(*i == chaine)
  3.     return true;
  4. }
  5. return false;


 
 
edit : correction pour cohérence du code (oubli d'un std:: :p)


Message édité par theshockwave le 28-07-2005 à 18:35:05
n°1163871
Joel F
Real men use unique_ptr
Posté le 28-07-2005 à 20:26:37  profilanswer
 

et std::find() c'est pour les babouins ??

n°1164233
Taz
bisounours-codeur
Posté le 29-07-2005 à 07:55:58  profilanswer
 

_p1c0_ a écrit :

ou vec est un vector <string> et chaine un string
c'est suffisant non?


non, c'est même faux. Une std::string n'est pas délimité par un '\0'. strlen(s.c_str()) <= s.size(). Donc tu risques de ne comparer qu'une portion de tes chaines. operator== fait le boulot comme il faut. et comme dit joelf, std::find le fait encore mieux.

n°1164234
Taz
bisounours-codeur
Posté le 29-07-2005 à 07:56:53  profilanswer
 

theshockwave a écrit :


[cpp]for(std::vector<std::string>::const_iterator i=vect.begin(); i!=vec.end(); i++){


http://forum.hardware.fr/hardwaref [...] 9981-1.htm

mood
Publicité
Posté le 29-07-2005 à 07:56:53  profilanswer
 

n°1164249
_p1c0_
Posté le 29-07-2005 à 08:46:11  profilanswer
 

Joel F a écrit :

et std::find() c'est pour les babouins ??


 
En fait, en faisant mes recherches sur google, j'ai pas trouvé vraiment de document où toutes les méthodes sont répertoriées... Si vous avez un bon lien, je suis preneur!
 
J'ai donc fini par utiliser std::find() et ca marche très bien!!  :D  
 
Merci à tous!  :p  


---------------
-_- http://www.scienceshopping.com -_-
n°1164288
theshockwa​ve
I work at a firm named Koslow
Posté le 29-07-2005 à 09:45:24  profilanswer
 

Citation :

et std::find() c'est pour les babouins ??


 


 
Oui, bon, j'ai honte, j'ai pas cherché à comprendre ce qu'il faisait en détails et j'ai juste modifié son exemple plutôt que réécrit une autre version :o

n°1164368
sankukai8
Posté le 29-07-2005 à 10:27:14  profilanswer
 

_p1c0_ a écrit :

Si vous avez un bon lien, je suis preneur!


 
http://wwwasd.web.cern.ch/wwwasd/l [...] assref.htm ->tout ce qui faut
http://www.sgi.com/tech/stl/index.html  ->le site de la stl
 
sinon google
tu cherches stl c++ et ce que tu veux
(ex stl c++ vector)  :)

n°1164398
_p1c0_
Posté le 29-07-2005 à 10:53:04  profilanswer
 

Merci beaucoup, je vais noter tout ca!!  ;)


---------------
-_- http://www.scienceshopping.com -_-

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [RESOLU] Recherche d'un string dans un tableau

 

Sujets relatifs
[CSS/ IE mac vs IE pc] Y a 1 developpeur sous Mac [Resolu]Convertir un string en int
[EMPLOI] Recherche Programmeur PHP / Graphiste [debutant] enumeration et tableau de String
Entête de tableau fixe sous IE[resolu]Récupérer le nom de mon dossier
[resolu]ouvrir un .doc depuis excelPb d'affichage [Résolu]
[RESOLU] Ouvrir un document Word déjà existant avec Access 97 
Plus de sujets relatifs à : [RESOLU] Recherche d'un string dans un tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR