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 :
Donc que faire les amis!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
NB: Exemple de fichier d'entrées :
le fichier de sortie ,en principe, doit comprendre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7abcdefghABCDEFGHabc 5 tdjdd abc abcdr abde abAB
COMMENT FONCTIONNE LA FONCTION STD::FIND() ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 n y n n n
Partager