#include #include int motif(char * pattern, char * texte) // Les positions sont comptées comme en Pascal : de 1 à la // longueur, et non pas à partir de 0 { int i, j ; int lp, lt ; // longueurs des chaînes // On vérifie qu'aucune chaîne n'est vide if (pattern[0]=='\0' || texte[0]=='\0') return -1 ; // Le texte doit être plus long que le pattern lp = strlen(pattern) ; lt = strlen(texte) ; if (lp > lt) return -2 ; // On est dans le cas normal i=0 ; do { for (j=0 ; j < lp && pattern[j]==texte[i+j] ; j++) ; i++ ; } while (i<=(lt-lp) && j < lp) ; if (j < lp) return 0 ; else return i ; } main(int argc, char * argv[]) { if (argc > 2) { printf("Recherche de |%s| dans |%s| : position : %d\n", argv[1], argv[2], motif(argv[1], argv[2])) ; } else exit (-1) ; }