Bonjour,
J'ai un petit souci de recherche de plusieurs mots clés dans une ligne.
J'ai un tableau de string vector<string>[] de taille j chaque case contient un mot clef exemple
vector<string> wanted = { "it", "you" };
J'ai un fichier texte que mon programme lit il se trouve dans vector<string> lines
1 2 3 4
| vector<string> lines;
string line;
while (getline(std::cin, line))
lines.push_back(line); |
J'ai deux cas de figure à gérer par la ligne de commande (mais bon ca la ligne de commande c'est géré pas de pb)
1er cas)
=======
Je dois rechercher pour chaque ligne si elle contient un des mots de wanted[] si c'est le cas j'affiche la ligne complète. (mais pas 2 fois si le mot est 2 fois dans la ligne)
Par exemple si mon fichier d'entrée est
Hello John
Are you fine?
Yes.Thanks.
Is it your dog?
He's beautiful.
No it's Michael's.
Là mon programme affiche
Are you fine?
Is it your dog?
No it's Michael's.
N.B you et it ne s'affichent pas en gras ..
J'ai regardé la STL std::search std::find std::find_firstof etc ... Mais j'ai du mal à saisir sans exemples concrets.
2er cas)
=======
Je dois rechercher pour chaque ligne si elle contient exactement un des mots de wanted[] si c'est le cas j'affiche la ligne complète. (mais pas 2 fois si le mot est 2 fois dans la ligne)
par exemple si le fichier d'entrée est
Hello John
Are you fine?
Yes.Thanks.
you
Is it your dog?
He's beautiful.
No it's Michael's.
Le programme affiche seulement
you
Car il n'a rencontré que you exactement une fois ...
Je pensais utiliser la première partie et comparer la longueur des chaînes ...
Partager