codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


char *replace(char *str, char *pattern, char *substr)
{
    char split[100][100];
    int i, j=0, z=0;
                                                    
    for(i=0; str[i]!='\0'; i++)
    {
        if(str[i]==' ')
        {
            split[j][z]='\0';
            j++;
            z=0;
        }
        else
        {
            split[j][z]=str[i];
            z++;
        }
    }
    split[j][z]='\0';
    z=0;
    
    for(i=0; i<=j; i++)
    {
        if(!strcmp(split[i], pattern))
        {
            while(substr[z]!='\0')
            {
                split[i][z]=substr[z];
                z++; 
            }
            split[i][z]='\0';
            z=0;    
        }
    }
            
    for(i=0; i<=j; i++)
    {
        strcat(split[0], " ");
        strcat(split[0], split[i+1]);
    }
    
    strcat(split[0], "\0");        
                
    return split[0];    
}





int main()
{
    int len;
    char str[100], pattern[30], substr[30];
    printf("Inserisci una frase [MAX.100]: ");
    fgets(str, 100, stdin);
    printf("Sostituisci: ");
    scanf("%s", pattern);
    printf("Con: ");
    scanf("%s", substr);
    len=strlen(str);
    str[--len]='\0';
    printf("%s\n", replace(str, pattern, substr));
    system("PAUSE");
    return 0;
}
N.B. sostituisce N pattern in una sola volta.