Определить длину самой длинной подстроки из подряд стоящих букв «и» - C (СИ)
Формулировка задачи:
Введена строка символов. Определить длину самой длинной подстроки из подряд стоящих букв «и».
Решение задачи: «Определить длину самой длинной подстроки из подряд стоящих букв «и»»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN 100
int main(void)
{
char *s;
int k = 0, maxLen = 0, i;
s = malloc((LEN + 1) * sizeof(char));
fgets(s, LEN, stdin);
for (i = 0; i < strlen(s); i++)
{
if (s[i] == 'и') k++;
else
{
if (k > maxLen)
maxLen = k;
k = 0;
}
}
printf("%d", maxLen);
free(s);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Подключаются необходимые библиотеки
- Задаётся длина строки s равная 100 символам
- В функции main() создаётся указатель на строку s и инициализируется нулевым значением
- С помощью функции fgets() считывается строка из стандартного ввода
- В цикле перебираются все символы строки s
- Если текущий символ равен 'и', то увеличивается счётчик k
- Если текущий символ не равен 'и', то проверяется значение счётчика k
- Если k больше значения maxLen, то обновляется maxLen
- Значение счётчика k сбрасывается в 0
- После цикла выводится значение maxLen
- Выделяется память, занятая строкой s, с помощью функции free()
- Функция main() возвращает 0, что означает успешный конец работы программы