ok fatto it works:
codice:
char *text= "Nel mezzo del cammin di nostra vita al mezzo dove";
char *search = "mezzo";
char *replace = "centrale";
char *currentSearch = text;
char *newText;
unsigned short iText=0;
unsigned short iNewText=0;
newText = (char *)calloc(1,sizeof(char));
//printf("Text=>%d\nnewText=>%d\n\n",text,newText);
while( (currentSearch=strstr(text+iText,search)) != NULL ) {
newText = (char *)realloc(newText, ( strlen(newText)+strlen(search)+strlen(text)-iText-strlen(search) ) * sizeof(char) );
strncat(newText+iNewText,text+iText,currentSearch-( text+iText ));
strcpy( newText+strlen(newText),replace );
iNewText += currentSearch-( text+iText ) + strlen(replace);
iText+=currentSearch-(text+iText)+strlen(search);
//printf("cS=>%d \n iNewText=>%d \n iText=>%d \n",currentSearch,iNewText,iText);
}
strcpy( newText+iNewText,text+iText );
printf("S:%s\n",newText);
però sembra quasi come se avessi scritto del codice aggiuntivo
non so perchè..
qualche errore di cattiva programmazione?