Zadanie maturalne - zawierające się wyrazy

0

Witam. Mam do wykonania zadanie, którego polecenie brzmi:
*Napisz program który dla dwóch napisów sprawdzi czy pierwszy zawiera się wewnątrz drugiego.
Zadanie
Napisz program, który:
 wczyta ze standardowego wejścia napis s oraz dokładnie 5 pozostałych napisów do sprawdzenia, wszystko oddzielone spacją (każdy złożony z nie więcej niż 50 wielkich liter alfabetu angielskiego,  wypisze na standardowe wyjście jedną liczbę równą ilości napisów (wśród podanych pięciu) takich że s się w nich zawiera.

Przykład
Dla danych wejściowych: SOS
SOSIK SSOK KOS KTOS STOS
poprawną odpowiedzią jest: 1

Natomiast dla danych wejściowych: STO
STOK PROSTO POST TOST STOS
poprawną odpowiedzią jest: 2 .

Mój program nie sprawdza każdej możliwej opcji, tj. dla sos - sosik będzie działał, ale już dla sto - prosto nie (gdyż jest przyrostkiem). Proszę o pomoc. Oto mój kod:

#include <iostream>
using namespace std;
int main()
{
string napis;
cin>>napis;
string s;
int t;
int wynik=0;
//sos
for (int i=0; i<5; i++)
{
    cin>>s; // SOSIK SSOK KOS KTOS STOS
    for (int j=0; j<napis.size(); j++)
    {
        if (napis[j]==s[j]) t=1;
        else t=0;

    }
    cout<<t<<endl;

    if (t==1) {wynik++;}

    t=0;

}

cout<<wynik;

    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1