# include <cstdlib>
# include <cstdio>
int main()
{
/*
Задан текст.
Определить, удовлетворяет ли он свойству,
текст начинается с некоторой ненулевой цифры, за которой следуют только буквы,
и их количество равно числовому значению этой цифры
*/
char text[1000] = {}; // текст
system("chcp 1251 && cls"); // меняем кодовую страницу в консоли для отображения кириллицы и очищаем консоль
printf("Введите текст:");
fgets(text, sizeof(text), stdin);
//1. проверяем, что первый символ - цифра, отличная от 0
if(text[0] <= '0' || text[0] > '9')
{
printf("Текст НЕ начинается с ненулевой цифры\n");
return 1;
}
//2. получаем числовое значение этой цифры
int len = text[0] - '0';
int count = 0; //счетчик длины
//3. проверяем есть ли в тексте не буквы
char *ptr = &text[1]; // указатель , установленный на второй символ
//4. пока не дойдем до конца строки
while(*ptr && *ptr != '\n')
{
// буквы в алфавите идут по порядку, поэтому проверяем на вхождение в диапазон
// 5.
char s = *ptr;
if(
(s >= 'a' && s <= 'z') // латиница нижний регистр
|| (s >= 'A' && s <= 'Z') // латиница верхний
|| (s >= 'а' && s <= 'я') // кириллица нижний
|| (s >= 'А' && s <= 'Я') // кириллица верхний
)
{
++ptr; // сдвигаем указатель
count++; // увеличиваем счетчик
}
else
{
printf("Найдена не буква\n");
return 1;
}
}
if(count != len)
{
printf("Число букв не равно первой цифре\n");
return 1;
}
printf("Текст удовлетворяет свойству\n");
return 0;
}