Scrivere un programma che, richieste all'utente le stringhe frase, parola1 e parola2, controlli se in frase è contenuta parola1, e in tal caso sostituisca tutte le sue occorrenze con parola2
/*
CLAUDIO CARDINALE III AI
Scrivere un programma che, richieste all'utente le stringhe frase, parola1 e parola2, controlli se in frase è contenuta parola1, e in tal caso sostituisca tutte le sue occorrenze con parola2
*/
#include<stdio.h>
#include<string.h>
#define MAX 1000
int main(){
//dichiarazioni
int i,j;
char frase[MAX],parola1[100],parola2[100],len,len2,len3,pos=-1,last=0;
//acquisizione dati
printf("inserire la frase : ");
gets(frase);
printf("inserire la parola da cercare : ");
gets(parola1);
printf("inserire la parola da sostituire : ");
gets(parola2);
//calcoli
//lunghezze
len2 = strlen(parola1);
len3 = strlen(parola2);
do{
len = strlen(frase);
pos=-1;
//ricerca
for(i=last;i<len&& pos == -1;i++){
for(j=0;parola1[j]==frase[i+j] && parola1[j]!='\0';j++);
if(parola1[j]=='\0')
pos = i;
}
//sostituzione
if(pos>=0){
//spostamento parte finale
if(len3-len2<=0)
for(i = pos; i<=len; i++)
frase[i+len3] = frase[i+len2];
else
for(i = len; i>=pos; i--)
frase[i+len3-len2] = frase[i];
//parte centrale modificata
for(i = 0; i<len3; i++)
frase[i+pos] = parola2[i];
last = pos+len3;
}
}while(pos!=-1);
//visualizzazione risultati
printf("%s\n",frase);
}