1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| // i == index sur la chaîne principale
// j == index sur la sous-chaîne
int Cherche(char *aiguille, char *botte, int i, int j)
{
if (aiguille[j] == '\0') //On a trouvé
return (i - j);
else //On cherche encore
{
if (botte[i] == '\0')
return (-1); //On est arrivé au bout sans trouver
if (aiguille[j] == botte[i])
return (Cherche(aiguille, botte, i + 1, j + 1)); //On a reconnu 1 char commun
else
return (Cherche(aiguille, botte, i + 1, 0)); // On n'a pas reconnu de char commun
}
}
int SousChaine(char *aiguille, char *botte)
{
return (Cherche(aiguille, botte, 0, 0));
} |
Partager