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],frase2[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;
}
last = i;
//sostituzione
if(pos>=0){
//parte iniziale originale
for(i = 0; i<pos; i++)
frase2[i] = frase[i];
//parte centrale modificata
for(j = 0; j<len3; j++)
frase2[i+j] = parola2[j];
//parte finale originale
for(; i<len; i++)
frase2[i+j] = frase[i+len2];
//null
frase2[i+j] = '\0';
//copia
strcpy(frase,frase2);
}else
strcpy(frase2,frase);
}while(pos!=-1);
//visualizzazione risultati
printf("%s\n",frase2);
}