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?
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