View Full Version : DELUCIDAZIONI PROGRAMMA C
Allora devo svolgere questo homework che verrà poi valutato...:
Devo scrivere un programma C che acquisisce un file di testo e due stringhe e poi costruisce un nuovo file di testo ottenuto dal file di testo precedente sostituendo ogni occorrenza della prima stringa con la seconda stringa.
In Pratica scrivo un testo: "Oggi compro una nuova casa. La casa sarà grande e bella. La casa costerà un sacco di soldi."
La stringa 1 : casa
La stringa 2: Auto
Quindi all'interno del file la parola casa sarà sostituita dalla parola Auto.
Spero che il testo dica questo. Giusto??
In pratica dovrei prendere un algoritmo di ricerca che appunto vada a ricercare all'interno del file di testo tutte l'occorenze della prima stringa.Che algoritmo devo utilizzare??
Poi devo usare una funzione che mi sostituisca l'occorenza della prima stringa con la seconda stringa. Che funzione uso??
In pratica dovrei prendere un algoritmo di ricerca che appunto vada a ricercare all'interno del file di testo tutte l'occorenze della prima stringa.Che algoritmo devo utilizzare??
Poi devo usare una funzione che mi sostituisca l'occorenza della prima stringa con la seconda stringa. Che funzione uso??Innanzitutto una cosa del genere si può svilupparla in mille modi diversi. Quindi non chiedere "che funzione usare". Non è che esiste un modo unico e preciso per fare questa cosa e non è che c'è sempre una funzione apposita che fa tutto quello che chiedi .... (e in questo caso non c'è).
Piuttosto, l'algoritmo di ricerca deve cercare parole "intere" o qualunque occorrenza della stringa da cercare?? Per essere più chiari: volendo cercare "un" e sostituirlo con "UN", si deve prendere in considerazione solo "un" o anche "una"???
tomminno
18-04-2007, 13:01
Allora devo svolgere questo homework che verrà poi valutato...:
Devo scrivere un programma C che acquisisce un file di testo e due stringhe e poi costruisce un nuovo file di testo ottenuto dal file di testo precedente sostituendo ogni occorrenza della prima stringa con la seconda stringa.
In Pratica scrivo un testo: "Oggi compro una nuova casa. La casa sarà grande e bella. La casa costerà un sacco di soldi."
La stringa 1 : casa
La stringa 2: Auto
Quindi all'interno del file la parola casa sarà sostituita dalla parola Auto.
Spero che il testo dica questo. Giusto??
In pratica dovrei prendere un algoritmo di ricerca che appunto vada a ricercare all'interno del file di testo tutte l'occorenze della prima stringa.Che algoritmo devo utilizzare??
Poi devo usare una funzione che mi sostituisca l'occorenza della prima stringa con la seconda stringa. Che funzione uso??
Visto che Auto e casa hanno la stessa lunghezza te la cavi con strncpy e strcpy, nel caso generico devi reallocare tutte le volte che sostituisci la parola.
Piuttosto, l'algoritmo di ricerca deve cercare parole "intere" o qualunque occorrenza della stringa da cercare?? Per essere più chiari: volendo cercare "un" e sostituirlo con "UN", si deve prendere in considerazione solo "un" o anche "una"???
Solo parole intere.
Ma quale algortimo potrei utilizzare??
Visto che Auto e casa hanno la stessa lunghezza te la cavi con strncpy e strcpy, nel caso generico devi reallocare tutte le volte che sostituisci la parola.
Era solo un esempio, devo farlo nel caso generale.
Ziosilvio
18-04-2007, 13:52
Io darei un'occhiata al K&R alle voci fgets, fputs, strcmp, e strtok.
Le prime due sono dichiarate in stdio.h, le altre in string.h.
Attenzione ai newline.
Per quanto riguarda l'algoritmo, si tratta di string matching.
Man mano che leggi, fai il matching con la prima stringa.
Quando ti accorgi che non c'è un matching, scrivi il primo carattere che hai letto, e ricominci dal successivo.
Quando trovi un matching, scrivi la seconda stringa, vai avanti di tanti caratteri quanto è lunga la prima, e ricominci.
Scusate, ma su 'ste cose sono veramente arrugginito...
Visto che Auto e casa hanno la stessa lunghezza te la cavi con strncpy e strcpy, nel caso generico devi reallocare tutte le volte che sostituisci la parola.
Eviterei di andare a reallocare...
IMHO è meglio usare l'algoritmo più semplice in questo caso...
Leggi un carattere per volta, se non matcha con il primo carattere della stringa lo vai a scrivere nel nuovo file...se invece matcha leggi il carattere successivo, se non matcha con il secondo riazzeri tutto e parti da capo andando a scrivere i caratteri letti sul file... Se arrivi a trovare la stringa da cercare vai a scrivere nel file la parola da sostituire...e riparti da capo...
FirstDance
19-04-2007, 14:48
???
Ai miei tempi gli algoritmi se li inventava l'alunno. Ora si usa scaricarsi pure questi?
Tra l'altro: non mi sembra niente di difficile.
Allora devo svolgere questo homework che verrà poi valutato...:
Devo scrivere un programma C che acquisisce un file di testo e due stringhe e poi costruisce un nuovo file di testo ottenuto dal file di testo precedente sostituendo ogni occorrenza della prima stringa con la seconda stringa.
In Pratica scrivo un testo: "Oggi compro una nuova casa. La casa sarà grande e bella. La casa costerà un sacco di soldi."
La stringa 1 : casa
La stringa 2: Auto
Quindi all'interno del file la parola casa sarà sostituita dalla parola Auto.
Spero che il testo dica questo. Giusto??
In pratica dovrei prendere un algoritmo di ricerca che appunto vada a ricercare all'interno del file di testo tutte l'occorenze della prima stringa.Che algoritmo devo utilizzare??
Poi devo usare una funzione che mi sostituisca l'occorenza della prima stringa con la seconda stringa. Che funzione uso??
Solo parole intere.
Ma quale algortimo potrei utilizzare??
Invece di chiedere che algoritmo usare, l'algoritmo dovresti progettarlo tu. Metti giù qualche idea, implementala e poi se proprio non funziona ripassa che ti diamo una mano. ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.