Напечатать все слова, отличные от последнего и удовлетворяющие следующему свойству: первая буква слова входит в него еще раз

Задан текст; между словами пробел, за последним словом точка.Напечатать все слова, отличные от последнего и удовлетворяющие следующему свойству:первая буква слова входит в него еще раз.

Вот примерно такой код у меня вышел, но тут встал вопрос...а как это написать не используя string? А использовать допустим только char?

#include <iostream>
#include <string>


using namespace std;

void word(string a,string b)
{
    int counter_a = 0, counter_b = 0, counter_c = 0;
    while ((counter_a = a.find_first_not_of(b, counter_b)) != string::npos)
    {
        counter_b = a.find_first_of(b, counter_a);
        if ((counter_c = a.find(a[counter_a], counter_a + 1)) != string::npos && counter_c < counter_b && counter_b != a.find_last_of('.'))
        {
            cout << a.substr(counter_a, counter_b - counter_a) << endl;
        }
    }
}

int main()
{
    setlocale(LC_ALL, "Russian");
    cout << "Задача: Задан текст; между словами пробел, за последним словом точка.\nНапечатать все слова, отличные от последнего и удовлетворяющие следующему свойству:\nпервая буква слова входит в него еще раз.\n" << endl;
    string str("Тише мыши кот на крыше а котята ещё выше кот пошёл за молоком а котята кувырком кот пришёл без молока хах."), separators(" .");
    cout << "Заданный текст: " << str <<endl;
    cout << "Результат:" << endl;
    word(str, separators);
}

Ответы (0 шт):