Si chaine2 est "111" et chaine1 est "111111", on a que 2 occurrences de chaine2 dans chaine1. Il faut donc adapter la mise à jour du pointeur p:


chaine2_len = strlen(chaine2);

/*...*/

p =...