Aide pour une fonction C++ , HELP !!!!
Résolu
Salut tout le monde , j'ai réussi à réaliser une fonction qui cherche chaine1 dans chaine2 , elle renvoie le nombre de fois dont elle l'a trouvée et 0 si ce n'est pas le cas , mais je veux un peu la renforcer , pour qu'elle ignore la recherche des ? , par exemple , elle doit trouver BO?AZ?? dans BOUAZZA et BOLZKK .... , le point d'interrogation doit remplacer un seul caractére , peut quelqu'un m'aider ?
Voici le code source de ma premiére fonction , si quelqu'un peut l'adapter pour ignorer les ? , je suis preneur :
merci pour toute réponse postée !
Voici le code source de ma premiére fonction , si quelqu'un peut l'adapter pour ignorer les ? , je suis preneur :
int recherche(std::string Texte , std::string Motif){ //recherche un motif "Motif" dans une chaine "Texte" int i; int sortie=0; for (i=0 ; i<Texte.length() ; i++){ if (Texte.substr(i,Motif.length())==Motif){ sortie++; } } return(sortie); //retourne 1 si le motif est trouvé , et 0 si ce n'est pas le cas }
merci pour toute réponse postée !
A voir également:
- Aide pour une fonction C++ , HELP !!!!
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction filtre excel n'existe pas - Forum Excel
4 réponses
Et pourquoi ne pas directement utiliser la lib pcre pour avoir direct les expressions régulières ?
Voilà sinon j'attire ton attention sur les fonctions :
- strstr de la lib C :
http://www.hmug.org/man/3/strstr.php
- et find de la STL associé à la classe std::string :
http://www.cppreference.com/cppstring/find.html
Et pour ta fonction :
Voilà sinon j'attire ton attention sur les fonctions :
- strstr de la lib C :
http://www.hmug.org/man/3/strstr.php
- et find de la STL associé à la classe std::string :
http://www.cppreference.com/cppstring/find.html
Et pour ta fonction :
bool is_matching( const std::string & texte, const std::string & motif ){ for(std::size_t i=0;i<texte.length();++i){ if (motif[i]=='?') continue; else if(motif[i]!=texte[i]) return false; } return true; }
Salut , merci , mais je me suis peut etre pas bien expliqué , ta fonction compare par ex : bou?z?? avec bouazza et donne le resultat , mais moi je voulait qu'elle cherche le motif , mais merci , car ta fonction m'a aidé à réaliser celle-ci qui cherche un motif dans un texte en ignorant les ? :
bool recherche( const std::string & texte, const std::string & motif ){ std::string texte1; bool sortie; for (int j=0;j<texte.length();j++){ texte1=texte.substr(j,motif.length()); for(std::size_t i=0;i<motif.length();++i){ if ((motif[i]!='?' && motif[i-1]=='?')||(motif[i]!='?' && i=='0')) sortie=true; if (motif[i]=='?') continue; else sortie=sortie * (motif[i]==texte1[i]); } if (sortie==true) return(true); sortie=false; } return false; }