logo Thecsea.it



Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License



scolastica » esercizi » terza superiore » linguaggio c

Testo dell'esercizio

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

mostra soluzione

/*
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);
}

Testi Consigliati:

Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line
C guida alla programmazione: Conoscere lo standard C11 dalle basi del linguaggio alle direttive del preprocessore (Programmare con C Vol. 1)
Programmazione in C

torna



Copyright © 2004-2024 thecsea.it (Claudio Cardinale - [email protected])! Tutti i diritti riservati. - contattaci