N.B. sostituisce N pattern in una sola volta.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; }