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 37 38 39 40
|
#include <stdio.h>
#include <regex.h>
#define BUFFER_SIZE 512
void cherche (char* pattern, FILE *f){
int codeRetour;
regex_t re;
char buffer[BUFFER_SIZE];
regmatch_t resultat[10]; // On stocke 10 occurences
// Compilation de l'expression . Pour les tests on cherche COUCOU
if ((codeRetour=regcomp( &re, "COUCOU", REG_EXTENDED))!=0){
// Erreur de compile
regerror(codeRetour, &re, buffer, sizeof buffer);
fprintf(stderr, "Err compilation expression: %s (%s)\n", buffer, pattern);
return;
}
while (fgets(buffer, BUFFER_SIZE, f) != NULL){
// On cherche
if (regexec(&re, buffer, 10, resultat,0)==0){
// On affiche la ligne
// fputs(buffer, stdout);
fprintf(stdout ,"Résultat --> %s\n",resultat[1] );
} else {
fprintf(stderr ,"Pas de résultat\n");
}
}
//libere la memoire
regfree(&re);
}
int main (int argc, char **argv){
// argc++;
// argv++;
cherche(*argv, stdin);
} |
Partager