Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Sostituzione stringhe
Forum - C/C++ - Sostituzione stringhe

Avatar
buffalo_overflw (Normal User)
Newbie


Messaggi: 6
Iscritto: 29/05/2007

Segnala al moderatore
Postato alle 16:23
Martedì, 29/05/2007
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


You can leave your [red] hat on...
PM Quote
Avatar
4x4lu5 (Ex-Member)
Rookie


Messaggi: 41
Iscritto: 16/08/2006

Segnala al moderatore
Postato alle 15:28
Mercoledì, 30/05/2007
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 il 30/05/2007 alle 15:31
PM Quote
Avatar
buffalo_overflw (Normal User)
Newbie


Messaggi: 6
Iscritto: 29/05/2007

Segnala al moderatore
Postato alle 15:42
Mercoledì, 30/05/2007
grazie mille del consiglio :)... io la ricerca e la sostituzione li avevo impostati come problemi distinti (avendo gia' implementato il ciclo del primo)... ma direi che cosi' e'estremamente piu' razionale e meno "costoso" in termini di complessita'. A buon rendere (sperando di esserne all'altezza)  ;-)


You can leave your [red] hat on...
PM Quote
Avatar
4x4lu5 (Ex-Member)
Rookie


Messaggi: 41
Iscritto: 16/08/2006

Segnala al moderatore
Postato alle 20:00
Venerdì, 29/06/2007
:k: Sempre 1 Piacere ::D

PM Quote