29/05/07 14:23
buffalo_overflw
Salve a tutti, sto implementando un programma in ansi C che trova la ricorrenza di una stringa all'interno di un'altra stringa (importata da un file di testo): se la trova deve sostituirla con una terza stringa; ho gia' scritto la parte relativa alla ricerca della ricorrenza, non so come implementare la parte della sostituzione.I dati che ho sono: il testo da file, l'indice iniziale dove comincia la ricorrenza e la terza stringa che va a sostituire; esiste una funzione di string.h che effettui tale operazione? Grazie in anticipo
aaa
30/05/07 13:28
4x4lu5
allora vediamo se ho capito
chiamiamo la stringa iniziale(ql lunga in cui cambiare le parole) str1
la stringa da cercare str2
la stringa da mettere str3
fai 1 copia di str1 che scorrerai x riscrivere str1, la chiamo str11
pulisci str1 cn 1 memset
scorri str11, ogni carattere va riscritto su str1, si fa 1 controllo su ogni carattere e il primo di str2, qnd si trova si controlla se il carattere successivo è ql di str2 altrimenti si riparte dal primo, se invece i caratteri ci sono tutti si torna indietro con il puntatore (di str1) e si scrive la str3 poi si riprende a fare le stesse cose, in pseudocodice tipo:
e=continua=0;
for (i=0;i<strlen(str11);i++,c++)
{
str1[c]=str11 [ i ];
if ( str11 [ i ] ==str2[e])
{
continua++;
e++;
if (continua==strlen(str2)-1)
{
int p;
c=c-strlen(str2);
for(p=0;p<strlen(str3)-1;p++,c++)
{
str1[c]=str3[p];
}
}
}
else
{continua=0;
e=0;
}
}
tipo 1 roba del genere, SPERO... skusami se ho scritto x caso qlk strafalcionata, nn ho modo qui di compilarlo e scrivere codice su 1 foglio nn mi ha mai dato troppe soddisfazioni qndi ricorda che qst vuol essere + 1 idea x aiutarti a risolvere il tuo problema che la soluzione gia scritta
ciao
Ultima modifica effettuata da 4x4lu5 30/05/07 13:31
aaa