Programma c++ verifica sottostringa

di il
1 risposte

Programma c++ verifica sottostringa

Salve ragazzi avrei bisogno del vostro aiuto per risolvere questo programma che dovrebbe verificare se s2 è o no una sottostringa di s1
ci ho provato ho fatto il programma
non mi dà errore ma il programma si interrompe e non funziona
potreste aiutarmi
ecco il programma scritto in c++


#include<iostream>
#include<string>
using namespace std;
string sottostringa(string& , string& );

int main()
{
string s1;
string s2;
cout<<"Please enter two string:\n";
getline (cin,s1);
getline (cin,s2);

sottostringa(s1,s2);
cout<<s2<<" non è una sottostringa di "<<s1<<"\n";
cout<<s2<<" è sottostringa di "<<s1<<"\n";

return 0;
}

string sottostringa(string& s1, string& s2)
{
//calcola la lunghezza delle due stringhe
int l1=s1.length();
int l2=s2.length();

if(l2>l1 )
{
cout<<s2<<" non è una sottostringa di "<<s1;


}

else
{
for(int i=0;i<l1;i++)
{
string one=s1.substr(i,1);


if(s2==one)
{
cout<<s2<<" è sottostringa di "<<s1;

}
else
{

cout<<s2<<" non è sottostringa di "<<s1;
}


}


}

return 0 ;

}

1 Risposte

  • Re: Programma c++ verifica sottostringa

    Questa funzione ritorna true se s2 è contenuta in s1 e false altrimenti.
    
    bool sottostringa(const string& s1, const string& s2)
    {
       return  string::npos != s1.find(s2);
    }
    
Devi accedere o registrarti per scrivere nel forum
1 risposte