Здравствуйте. Помогите пожалуйста кое в чём разобраться. Дана задача: Дана последовательность слов (не более 50), в каждом слове не более восьми символов. Слова разделены пробелом, за последним словом стоит точка. Найти те слова, которые отличаются от последнего слова и удовлетворяют следующему условию: первая буква слова входит в него ещё раз.
Программу я написал, но она не работает если вводить строку "mama papa mama." или "papa ......... papa." , вообщем где последнее слово состоит из одной и той же пары букв. Тогда программа выводит также слово, совпадающее с последним. В остальных случаях программа работает. Что же нужно исправить?
Код:
#include <iostream>
#include <conio.h>
#include <string.h>
void main()
{
setlocale (LC_CTYPE, "Russian");
const char strRASD[] = " ";
char strString[255], strWord[7];
printf ("Введите строку\n");
gets(strString);
strrev (strString);
char *pslovo = strtok (strnset(strString,' ',1), strRASD);
strrev (pslovo);
strcpy (strWord, pslovo);
printf ("\n Найдены слова по условию:\n");
while (pslovo = strtok(NULL, strRASD))
{
if (strchr(pslovo+1, *strrev(pslovo)))
printf("%s\n", pslovo);
}
_getch();
}