Salve,
da poco ho iniziato a studiare le stringhe in c++ ,ma ad un certo punto mi sono perso.
Mi è stato assegnato un compito dove mi chiedeva : Date due stringhe s1 ed s2 di lunghezza qualsiasi,scrivere una funzione in c++ che verifichi se s2 è una sottostringa di s1 (cioè se s2 è contenuta in s1),restituendo il valore intero -1 se non lo è, oppure un valore positivo che indichi la posizione di inizio della corrispondenza tra gli elementi di s2 e s1.
Partendo dalle basi delle stringhe sono riuscito a capire come dichiarare una variabile di tipo string,come inizializzare una stringa e assegnare un valore alla variabile di tipo string o
sommare due stringhe di partenza per formare un'unica stringa come risultato esempio :
codice:
string stringaIniziale1 = "mi presento, ";
string stringaIniziale2 = "mi chiamo Pietro";
string stringaFinale = stringaIniziale1 + stringaIniziale2;
cout << stringaFinale;
Non riesco a capire come verificare se questa stringa è contenuta dentro l altra... qualcuno può darmi una mano?
consultando diverse guide avevo fatto una cosa di questo tipo:
codice:
#include <string>
#include <iostream>
using namespace std ;
int main()
{
string s1, s2; //dichiaro 2 oggetti stringa s1 e s2
string s1 = "Ti Saluto" ;
string s2 = s1 ;
s1 = 'c'; //assegnamento del carattere c alla stringa s1
s1 = "Ciao Ti Saluto" ;
if(s2 != s1)
{
int c = a.find(b,0);
c==string:npos ; //il contenuto di s2 non si trova in s1
cout << "Non trovato" ;
return 0;
}
if(s2==s1)
{
int c=a.find(b,0);
cout<< c;
return 0;
}
Ma non funge..
Ho deciso di rivolgermi a questo forum perchè lo reputo uno dei migliori...
Vi saluto e spero in qualche risposta