Oppure

Loading
23/08/17 14:35
mattone2000
esempio teorico :

Inserisci una frase: Mario rossi sta andando al bar per prendere un pacchetto di patatine.

Inserisci la prima parola da trovare: sta

Inserisci l'ultima parola della sotto frase che deve essere trovata: un

(↑ dati di input ↑ )

sta andando al bar per prendere un

(↑ dati di output ↑ )


ciò che succede quando avvio il programma :

Inserisci una frase: Mario rossi sta andando al bar per prendere un pacchetto di patatine.

Inserisci la prima parola da trovare: sta

Inserisci l'ultima parola della sotto frase che deve essere trovata: un

(↑ dati di input ↑ )

sta andando al bar per prendere un pacchetto

(↑ dati di output ↑ )
Ultima modifica effettuata da mattone2000 23/08/17 14:36
aaa
23/08/17 14:43
Mikelius
Il metodo substr(int Index,int lenght) accetta 2 valoti in ingresso:
- Il punto iniziale
- LA LUNGHEZZA della stringa da estrarre.

tu passi l'indice iniziale della prima e L'INDICE iniziale della seconda. Devi calcolarti la LUNGHEZZA della stringa da estrapolare.
Pensaci 2 minuti e ragiona su come potresti fare

P.s. chiedo perchè non lo so (conosco poco il C++). Passare un size_t invece che un int, che comporta?


Ultima modifica effettuata da Mikelius 23/08/17 14:44
aaa
23/08/17 15:06
mattone2000
Postato originariamente da Mikelius:

Il metodo substr(int Index,int lenght) accetta 2 valoti in ingresso:
- Il punto iniziale
- LA LUNGHEZZA della stringa da estrarre.

tu passi l'indice iniziale della prima e L'INDICE iniziale della seconda. Devi calcolarti la LUNGHEZZA della stringa da estrapolare.
Pensaci 2 minuti e ragiona su come potresti fare

P.s. chiedo perchè non lo so (conosco poco il C++). Passare un size_t invece che un int, che comporta?




int ? nel codice non ho usato int, nel caso intendessi dire di sostituire size_t con int non cambia nulla ma se intendevi dire di sostituire questa parte di codice
cout<<stringa.substr(pos, dd);
con
cout<<stringa.substr(pos, fine);
dove fine è una varibile size_t che racchiude i caratteri della sottostinga che dovrebbe risultare non riesco a capire come racchiuderli (dentro a fine):-?:-?
Ultima modifica effettuata da mattone2000 23/08/17 15:12
aaa
23/08/17 17:56
Template
Postato originariamente da mattone2000:

int ? nel codice non ho usato int, nel caso intendessi dire di sostituire size_t con int non cambia nulla


COSA? :grr:

Il tipo size_t è ottenuto per typedef da un tipo intero, ma questo NON LO RENDE uguale ad int: potrebbe essere stato definito come un tipo possibilmente più grande di un int (pensa ad un'architettura a 64 bit, ad esempio: potrebbe essere typedef long int size_t). Lo standard specifica solo:

The type size_t is an implementation-defined unsigned integer type that is large enough to contain the size in bytes of any object



Comunque... quello che devi fare è dare alla funzione substr la posizione del primo carattere (e questo l'hai fatto) e la LUNGHEZZA DELLA STRINGA CHE VUOI STAMPARE. Puoi ottenere questo secondo parametro come la differenza tra la posizione dell'ultimo carattere da stampare e la posizione del primo carattere da stampare aumentata di 1:

length = pos_last_char - pos_first_char + 1
Ultima modifica effettuata da Template 23/08/17 18:00
aaa