Напишите функцию внутр 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;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Определяем функцию func, которая принимает в качестве аргумента строку (константный указатель на символ)
  3. Внутри функции объявляем переменные: max - для хранения максимальной длины сегмента cnt - для подсчета количества одинаковых символов в сегменте
  4. Используем цикл while для прохода по всем символам строки
  5. Внутри цикла проверяем, является ли текущий символ таким же, как предыдущий
  6. Если символы одинаковые, увеличиваем значение переменной cnt на 1
  7. Если символы разные, проверяем, является ли текущая длина сегмента (cnt) больше максимальной длины (max)
  8. Если текущая длина сегмента больше максимальной, обновляем значение переменной max
  9. После выхода из цикла обнуляем значение переменной cnt
  10. Возвращаем значение переменной max
  11. В функции main вызываем функцию func и выводим результат на экран
  12. Для этого передаем в функцию func строку aabbbcCcCcddeeeeff
  13. Функция func возвращает максимальную длину сегмента (в данном случае 5)
  14. Значение 5 выводится на экран
  15. Функция main возвращает 0, что означает успешный конец работы программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы