#include <stdio.h>
#include <stdlib.h>

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);
}*/
