Напечатать все слова, отличные от последнего и удовлетворяющие следующему свойству: первая буква слова входит в него еще раз
Задан текст; между словами пробел, за последним словом точка.Напечатать все слова, отличные от последнего и удовлетворяющие следующему свойству:первая буква слова входит в него еще раз.
Вот примерно такой код у меня вышел, но тут встал вопрос...а как это написать не используя 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);
}