#include #include char *replace(char *str, char *sub){ //clc taille sub //nbr * x taille sub if(str == NULL || sub == NULL) return NULL; //clc taille sub int index = 0; while (*(sub + index)) index ++; int index_str = 0; int nb_etoile = 0; while( *(str + index_str)){ if ( *(str + index_str) == '*') nb_etoile ++; index_str ++; } int len_fin = index_str - nb_etoile + ( index * nb_etoile); char *rslt = malloc((len_fin + 1) * sizeof(char)); if (rslt == NULL) return NULL; index = 0; index_str = 0; int index_sub = 0; //parcours total while(*(str + index_str)){ //si le char est une etoile if (*(str + index_str) == '*'){ index_sub = 0; //copie de sub dans rslt while(*(sub + index_sub)){ *(rslt + index) = *(sub + index_sub); index_sub ++; index ++; } } else{ *(rslt + index) = *(str + index_str); index ++; } index_str ++; } *(rslt + index) = '\0'; return rslt; } /* int main(){ char *test =replace("Hello *", "World!"); // Hello World! printf("%s\n", test); free(test); //printf("ici"); test = replace("*H*e*l*l*o*", "BIM"); // BIMHBIMeBIMlBIMlBIMoBIM printf("%s\n", test); free(test); }*/