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 : 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;
}
Donc que faire les amis!!!!
NB: Exemple de fichier d'entrées :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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() ?