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++ - eliminare parti di un array
Forum - C/C++ - eliminare parti di un array

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Dice (Normal User)
Expert


Messaggi: 238
Iscritto: 26/11/2011

Segnala al moderatore
Postato alle 1:25
Giovedì, 19/07/2012
ho bisogno di aiuto per un piccolo problema:

voglio eliminare alcune parti di un array, è possibile ?

Vi faccio un esempio:

vettore iniziale: exoyezP(x,y,z)

io voglio eliminare solo la parte  " ex "

ottenendo: oyezP(x,y,z)

Come posso fare ? Devo per caso usare un vettore temporaneo ? Se si, come devo fare ?

Grazie mille in anticipo


La vita è un biscotto ma se piove si scioglie !!!
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6193
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 6:52
Giovedì, 19/07/2012
Devi solo eliminare i primi due caratteri oppure cercare all'interno della stringa per la presenza di "ex"?

Per i primi due caratteri potresti semplicemente avanzare il puntatore di due...

Codice sorgente - presumibilmente C/C++

  1. char *str = "exoyezP(x,y,z)";
  2. char *truncated = (str + 2); // "oyezP(x,y,z)"



Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5686
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 8:03
Giovedì, 19/07/2012
Ma quella è una stringa? O è proprio un array ?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Dice (Normal User)
Expert


Messaggi: 238
Iscritto: 26/11/2011

Segnala al moderatore
Postato alle 17:10
Giovedì, 19/07/2012
E' una stringa.
No, non devo eliminare solo i primi due; quello che voglio fare io è che devo cercare certe parti di essa ed eliminarle; esempio:

            exoyezP(x, y, z)

io devo fare in modo di eliminare 2 pezzi della stringa:

1) "ex"
2) "ez"

Questo è solo un esempio, ma potrebbero capitare anche in altre posizioni.
Come posso fare ?


La vita è un biscotto ma se piove si scioglie !!!
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5686
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 17:19
Giovedì, 19/07/2012
Allora il titolo dovrebbe essere "eliminare parti di una stringa" ...



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Dice (Normal User)
Expert


Messaggi: 238
Iscritto: 26/11/2011

Segnala al moderatore
Postato alle 18:12
Giovedì, 19/07/2012
sorry :(


La vita è un biscotto ma se piove si scioglie !!!
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5686
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:59
Giovedì, 19/07/2012
Esponi tutte le specifiche complete del problema, per non perdere tempo a modificare quello che già si è fatto ...

Hai una stringa ... di quale lunghezza massima? Quante parti devi eliminare? La stringa originale deve essere modificata o no? ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Dice (Normal User)
Expert


Messaggi: 238
Iscritto: 26/11/2011

Segnala al moderatore
Postato alle 11:32
Venerdì, 20/07/2012
Quello che devo fare io è applicare l'algoritmo di skolemizzazione.
Devo acquisire una formula in Forma Normale Prenessa (FNP), e trasformarla in una formula in Forma Normale di Skolem (FNS).
Vi riporto direttamente tutto l'algoritmo:


    La FNP è una formula in cui i quantificatori compaiono tutti nel prefisso (le FNP e le FNS sono formate da 2 parti: prefisso e matrice)
    Se Q1 (primo quantificatore) è ∀ si passa direttamente al punto successivo.
    Se Q1 è ∃ allora si cancella ∃x1 e si sostituisce ad ogni occorrenza di x1 in α una stessa costante che non compaia già in α. Esempio: ∃x∀y(A(a, x) ∧ B(b, x,y)) diventa ∀y(A(a, c) ∧ B(b, c,y))
    Come si può facilmente notare si è tolto il quantificatore ∃ e si è sostituita la variabile x con la costante c.
    La scelta della costante c non è casuale visto che "a" e "b" erano già utilizzate.
    Prendo in rassegna Qn
        Se Qn è un ∀ si riparte da questo punto con Qn+1.
        Se Qn è ∃ allora i casi possono essere i seguenti:
            Se il quantificatore Qn-1 era di tipo ∃ ovvero ∃xn-1∃xn allora si ripete il punto precedente con ∃xn sostituendo però ad ogni occorrenza della variabile xn un funtore che prenda in rassegna tutte le variabili precedentemente utilizzate dai quantificatori ∀.
            Come si può notare finché non appaiono quantificatori di tipo ∀ si sostituiscono alle variabili xn delle semplici costanti.
            Se il quantificatore Qn-1 è di tipo ∀ ovvero ∀xn-1∃xn si cancella ∃xn e si sostituisce ogni occorrenza di xn in α con un funtore f() che prenda in rassegna le variabili utilizzate dai quantificatori ∀ che lo precedono. Se fosse ∀y∀z∃u (α;) dovrei in primis cancellare ∃u poi sostituire nella frase α la variabile u con il funtore f(y, z) (il funtore non deve esistere già).
    Esempio: ∀x∃y(A(x, f(x), y) ∧ C(y)) diventa ∀x(A(x, f(x), g(x)) ∧ C(g(x)))
    Come si può facilmente notare si è tolto il quantificatore ∃y e si è sostituita la variabile y con il funtore g(x).
    La scelta della variabile x non è casuale visto che x1 in questo caso è proprio x.



Gia vi dico che io l'algoritmo l'ho capito e lo saprei applicare (sfortunatamente solo su carta ^_^)

Il mio problema, come vi avevo detto è che ci sono delle parti della stringa che devo eliminare, ma non li si conosce a priori: come potrei fare ?


La vita è un biscotto ma se piove si scioglie !!!
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5686
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 12:14
Venerdì, 20/07/2012
Ma lo devi fare proprio in C o anche in C++ ?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo