Oppure

Loading
22/08/17 23:50
mattone2000
Ciao a tutti, il mio problema è che non riesco a prendere una parte di una stinga indicando la prime e l' ultima parola.
sono arrivato fino a questo punto ma credo di aver sbagliato : :_doubt::_doubt:
int main()
{
	
string stringa;
char l;
char p;

cout<<"\n Inserisci una frase:";
getline(cin, stringa, '\n');

cout<<"\n Inserisci la prima parola da trovare:";
cin >> l;

cout<<"\n Inserisci l'ultima parola della sotto frase che deve essere trovata':";
cin >> p;


size_t pos = stringa.find(l);

size_t dd = stringa.find(p);

cout<<stringa.substr(pos, dd);

}


grazie ancora per l'aiuto

EDIT del moderatore: usa il tag code per inserire il codice
Ultima modifica effettuata da lumo 23/08/17 8:11
aaa
23/08/17 6:48
Template
Sbaglio, o il metodo find ritorna l'indice della prima lettera dell'occorrenza della parola?

Se è così, ti basta modificare gli argomenti del metodo substr mettendo (pos, dd + p.length).

Comunque, il tuo programma ha un problema di fondo sul quale ti invito a riflettere: se l'utente sbaglia a digitare ed inserisce una parola che non c'è nella stringa, cosa succede? ;)
aaa
23/08/17 13:00
Mikelius
Ma,
l e p sono caratteri o stringhe?
Perchè
char l

in C, è la sintassi per un singolo carattere, non per una parola.
aaa
23/08/17 13:17
Template
Postato originariamente da Mikelius:
in C, è la sintassi per un singolo carattere, non per una parola.


Non mi ero accorto di questo orrore :_doubt:
aaa
23/08/17 13:45
mattone2000
quindi dovri usare tipo

char l [10];
:-?:-?:-?:-?:-?
aaa
23/08/17 13:53
Mikelius
credo che pure
string l;


si possa usare...
non importa se la stringa è di 1 o 10 parole (scusate se sbaglio)

Postato originariamente da Template:

Postato originariamente da Mikelius:
in C, è la sintassi per un singolo carattere, non per una parola.


Non mi ero accorto di questo orrore :_doubt:

A volte non ci accorgiamo delle semplici cose XD.
Ultima modifica effettuata da Mikelius 23/08/17 13:55
aaa
23/08/17 14:02
mattone2000
Postato originariamente da Mikelius:

credo che pure
string l;


si possa usare...
non importa se la stringa è di 1 o 10 parole (scusate se sbaglio)

Postato originariamente da Template:

Postato originariamente da Mikelius:
in C, è la sintassi per un singolo carattere, non per una parola.


Non mi ero accorto di questo orrore :_doubt:

A volte non ci accorgiamo delle semplici cose XD.


con string funziona ma a volte inserice dei caratteri della parola dopo:-? sapresti aiutarmi a capire perchè?
aaa
23/08/17 14:25
lumo
matteone2000, riporta degli esempi di esecuzione con il risultato che ottieni e quello che invece vorresti.
Leggi anche il regolamento della sezione: pierotofy.it/pages/extras/forum/2/78115-leggere_prima_di_postare_regolamento/
aaa