Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- using namespace std;
- int main()
- {
- string s,t;
- int m,n,i,k;
- bool sottoinsieme=false;
- cout << "Inserire una stringa s: ";
- cin >> s;
- cout << "Inserire una stringa t: ";
- cin >> t;
- m=s.length(); //misuro e memorizzo in m la lunghezza di s
- n=t.length(); //misuro e memorizzo in n la lunchezza di t
- if (n>m) {
- cout << "Errore: la stringa S deve essere piu grande di T";
- return 1;
- }
- i=0; k=0; //i contatori i e k sono usati rispettivamente per s e t
- while (i<m)
- {
- if (s.substr(i,1)==t.substr(k,1)) //se il confronto va a buon fine...
- {
- k++; //...si passa al successivo
- if (k==n) //se k misura esattamente quanto la lunghezza della stringa t allora t Γ¨ sottoinsimene di s
- {
- sottoinsieme=true;
- i=m; //imposto i=m per uscire subito dal ciclo while
- }
- } else k=0; //invece se il confronto non va a buon fine, si ricomincia da capo...
- i++;
- }
- if (sottoinsieme) cout << "La stringa t e' sottoinsieme di s";
- else cout << "La stringa t *NON* e' sottoinsieme di s";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement