Напишите функцию внутр najdlhsie_opakovanie, которая возвращает длину самого длинного сегмента - C (СИ)
Формулировка задачи:
Напишите функцию внутр najdlhsie_opakovanie
Помогите пожалуйста написать эту функцию!!!
Заранее спасибо!!!
(char str [])
, которая возвращает длину самого длинного сегмента(в строку str)
, содержащий тот же повторяющийся характер. Различают между прописными и строчными буквами. Строкаstr
, будет закончена \0 Пример вызова: str = "aabbbcCcCcddeeeeff" dlzka = najdlhsie_opakovanie(str); // вызов функции dlzka: 4 // вывод функцииC |
Решение задачи: «Напишите функцию внутр najdlhsie_opakovanie, которая возвращает длину самого длинного сегмента»
textual
Листинг программы
#include <stdio.h> #include <stdbool.h> unsigned func(const char str[]) { unsigned max = 0; unsigned cnt = 1; while (*str++) { if (*str == *(str - 1)) { cnt++; } else { if (max < cnt) { max = cnt; } cnt = 1; } } return max; } int main() { printf("dlzka: %u\n", func("aabbbcCcCcddeeeeff")); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем функцию func, которая принимает в качестве аргумента строку (константный указатель на символ)
- Внутри функции объявляем переменные: max - для хранения максимальной длины сегмента cnt - для подсчета количества одинаковых символов в сегменте
- Используем цикл while для прохода по всем символам строки
- Внутри цикла проверяем, является ли текущий символ таким же, как предыдущий
- Если символы одинаковые, увеличиваем значение переменной cnt на 1
- Если символы разные, проверяем, является ли текущая длина сегмента (cnt) больше максимальной длины (max)
- Если текущая длина сегмента больше максимальной, обновляем значение переменной max
- После выхода из цикла обнуляем значение переменной cnt
- Возвращаем значение переменной max
- В функции main вызываем функцию func и выводим результат на экран
- Для этого передаем в функцию func строку
aabbbcCcCcddeeeeff
- Функция func возвращает максимальную длину сегмента (в данном случае 5)
- Значение 5 выводится на экран
- Функция main возвращает 0, что означает успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д