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;
}