Дана строка, содержащая текст на русском языке. Подсчитать
количество слов, начинающихся и заканчивающихся на одну и ту
же букву
Я пробовал сделать, но у меня есть проблемы: https://pastebin.com/9kwbbdkS
Не могу сделать ввод с клавиатуре, программа начинает не корректно работать, когда добавляю цикл на подсчёт количества слов - тоже не работает.
C/C++
Помогите написать код на Си, по теме "строки".
#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
#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
#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;
}

#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;
}

Похожие вопросы
- Помогите доработать код на СИ по теме строки
- Помогите написать код c++ со строками
- Помогите написать код! С++ Строки (без использования классов)
- Помогите переделать код на Си
- Помогите написать код C++ со строками
- Помогите написать программу на СИ
- Написать код на си .Желательно с объяснением
- Помогите написать код
- Помогите написать код с файлами C++
- Помогите написать код с файлами C++