Zlicza Słówa

Program licza słowa w tekście i wyodrębnia je

#include <iostream>
#include <string>

using namespace std;

int main()
{
    const string znaki(" ,:;.'<>*-=+!@#$%^&*()~`?[]{}_/");
        string tekst="",tab[100];
        string::size_type poczatek,koniec,ostspacja,ostlitera,ilosc;
    int k,z,oslit,osspac,s;
    cout<<"Podaj tekst: aby zakonczyc wpisz 'koniec'"<<endl;
    while(getline(cin,tekst)){
        if(tekst=="koniec")break;
        if (tekst.empty()){
            cout<<"Nie podales zadnego tekstu!!!"<<endl<<endl;
            cout<<"Podaj tekst: "<<endl;
            continue;
        }
        if(tekst.find('.')==string::npos){
            tekst+=".";
        }
            ilosc=tekst.size();
                s=static_cast<int>(ilosc);
            ostlitera=tekst.find_last_not_of(znaki,s);
                oslit=static_cast<int>(ostlitera);
            ostspacja=tekst.find_last_of(znaki,oslit);
                osspac=static_cast<int>(ostspacja);

        int p=0, i,l=0;
        int licznik=0;
        while(p!=oslit+1){
            l++;
                poczatek=tekst.find_first_not_of(znaki,p);
                    p=static_cast<int>(poczatek);
                koniec=tekst.find_first_of(znaki,p);
                    k=static_cast<int>(koniec);
                    i=k-p;
                tab[l]=tekst.substr(p,i);
                cout<<tab[l]<<endl;
                    p=k;
                koniec=tekst.find_first_of(znaki,p);
                    z=static_cast<int>(koniec);
                    k=z;
            licznik++;
        }
        cout<<"Ilosc slow: "<<licznik<<endl;
    }
    system("pause");
    return 0;
}