C/C++

Помогите написать код на Си, по теме "строки".

Дана строка, содержащая текст на русском языке. Подсчитать
количество слов, начинающихся и заканчивающихся на одну и ту
же букву

Я пробовал сделать, но у меня есть проблемы: https://pastebin.com/9kwbbdkS

Не могу сделать ввод с клавиатуре, программа начинает не корректно работать, когда добавляю цикл на подсчёт количества слов - тоже не работает.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int includes(char* word) {
int n, i;
if (word == NULL) return 0;
if (strlen(word) == 1) return 0; // если одна буква
n = strlen(word);
for (i = 0; i < n; ++i) if (word[0] == word[strlen(word) - 1]) return 1;
return 0;
}
int main(void) {
char* token = NULL;
char* next_token = NULL;
int count = 0;
system("chcp 1251 > nul");
char line[] = "Слова которые начинаются на одну и ту же букву будут: тут боб тест";
puts(line);
token = strtok_s(line, " ", &next_token);
count += includes(token);
while (token != NULL) {
token = strtok_s(NULL, " ", &next_token);
count += includes(token);
}
printf("Количество: %i\n", count);
system("pause > nul");
return 0;
}

P.S. Если у вас язык С, то никаких iostream в нём нет. Оттого, что вы компилируете код написанный якобы на С, компилятором С++, он кодом на С от этого не станет. Расширение у файла исходного кода на С должно быть *.c, а не *.cpp

P.P.S. У меня код написан в Visual Studio 2019, с включением поддержки стандарта C17
ИБ
Игрорь Барков
88 474
Лучший ответ
#include<stdio.h>
#include<unistd.h>
#include<wchar.h>
int main()
{
wchar_t text[1024];
int count=0;
wchar_t *ps=text;
wprintf(L"Введите текст: \n");
fgetws(text,sizeof(text),stdin);

while(*ps)
{
if(iswspace(*ps)&&(*ps)||(*ps==L',')
||(*ps==L'.')||(*ps==L';')||(*ps==L':'))
{
while(iswspace(*ps)&&(*ps)||(*ps==L',')
||(*ps==L'.')||(*ps==L';')||(*ps==L':'))
ps++;
}

if(!iswspace(*ps)&&(*ps)&&(*ps!=L',')
&&(*ps!=L'.')&&(*ps!=L';')&&(*ps!=L':'))
{ //if
wchar_t beg=*ps;
wchar_t end;
while(!iswspace(*ps)&&(*ps)&&(*ps!=L',')
&&(*ps!=L'.')&&(*ps!=L';')&&(*ps!=L':'))
{ //while
ps++;
} //while
ps--;
end=*ps;
ps++;
if(beg==end) count++;
} ;//if
}
wprintf(L"\nКоличество слов, \nначинающихся и заканчивающихся\nна одну и ту же букву - %d",count);
fflush(stdout);
sleep(10);
return 0;
}