Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
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)"



Il mio blog: https://piero.dev
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
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 ?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
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 :(

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
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 ?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
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