utilisation de std::find( string )
Je cherche ouvrir un fichier text compenant :
- Sur la première ligne un text S qui ne comprend que des caractère 'a'-->'z' et 'A'-->'Z' et des espaces
- sur la Deuxième ligne un entier qui indique le nombre nbr_Q de mot qui vont suivre.
- les nbr_Q suivantes lignes chacune comprend un mot
Donc je cherche à verifie si les mots figurent dans la chaine de caractère S ou non.
La sortie et un fichier text comprenon sur chaque ligne 'y' ou 'n' selon le test.
voila ce que j'ai fais :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| #include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
int nbr_Q, i,j;
string S,Q;
ifstream in("strings.in");
ofstream out("strings.out");
if( in && out)
{
getline(in,S);
in>>nbr_Q;
for(j=1 ; j<=nbr_Q ; j++)
{
getline(in,Q);
if(S.find(Q)>S.size()) out<<"y\n";
/*
je pense que le test que je fais et faux
Quel est le retour de la fonction find(....) ?
Est-ce la fonction std::find(string) tient compte de la case?
quand la chaine ne n'est pas touvé
*/
else out<<"n\n";
}
in.close();
out.close();
}
return EXIT_SUCCESS;
} |
Donc que faire les amis!!!!
NB: Exemple de fichier d'entrées :
Code:
1 2 3 4 5 6 7
| abcdefghABCDEFGHabc
5
tdjdd
abc
abcdr
abde
abAB |
le fichier de sortie ,en principe, doit comprendre :
COMMENT FONCTIONNE LA FONCTION STD::FIND() ?