ai lu de poste au sujet de la recherche de mot dans une chaine de caractere.
j'ai testé le code donné et celui recherche juste une portion de code identique:
c'est a dire qu'il va dire avoir trouve le mot "cou" dans le mot "coucou" d'une des lignes du fichier txt.
je dois cree un historique de mes commandes utiliser sans les duplique
Je voulais donc savoir si il etait possible de force la recherche sur les chaines de caracteres de meme longeur.
j'ai essayer ca:
je decoupe donc mon texte ligne par ligne
puis mot par mot
je compare la taille d'un de ces mot a la taille de ma commande saisie
et contenue ds "entree"
je voulais donc savoir si sa vous parait correct
Si on a "cou" il va le comparer uniquement au mot de taille 3.
lce code m'evide donc de dire que la saisie de "cou" a deja ete trouver ds "coucou"
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 while(fgets(buffer,256,fd) != NULL) // on passe ligne par ligne { temp = strtok(buffer, " "); if(strlen(temp)==strlen(entree)) if(strstr(temp,entree) != NULL) // on compare ligne par ligne a notre entree { trouve = 1; // la chaine a été trouvée } temp = strtok(NULL, " "); while (temp !=NULL) { if(strlen(temp)==strln(entree)) { if(strstr(temp,entree) != NULL) // on compare ligne par ligne a notre entree { trouve = 1; // la chaine a été trouvée } } temp = strtok(NULL, " "); } } if(trouve != 1 ) // on a pas trouvé cette commande { printf("La commande %s n'a pas ete trouve\n", entree); //on l'ajoute a history fseek(fd,0,SEEK_END); fwrite(entree,strlen(entree),1,fd); fwrite("\n",1,1,fd); fclose(fd); } else { printf("Chaine trouvee on ne l'ajoute pas a history\n"); }
mais il me trouve la commande "ls" dans "ls -l" qui pour moi sont 2commandes diffrentes








Répondre avec citation
Partager