Создание собственной функции для вычисления длины строки

Последовательно считайте байты до первого нулевого символа. Как и strlen, функция требует указатель на доступную строку с завершающим '\0' и не считает Unicode-символы.

Короткий ответ

Что ответить на собеседовании

Последовательно считайте байты до первого нулевого символа. Как и strlen, функция требует указатель на доступную строку с завершающим '\0' и не считает Unicode-символы.

Подробный разбор

Ответ с пояснениями

Условие

Реализовать функцию, аналогичную стандартному strlen, которая возвращает количество символов в переданной строке.

Ответ

Последовательно считайте байты до первого нулевого символа. Как и strlen, функция требует указатель на доступную строку с завершающим '\0' и не считает Unicode-символы.

#include <cstddef>

std::size_t my_strlen(const char* text) {
    std::size_t length = 0;
    while (text[length] != '\0') ++length;
    return length;
}

Для пустой строки результат 0, нулевой терминатор в длину не входит. nullptr и буфер без доступного терминатора нарушают контракт. Если известен лишь размер буфера, нужен ограниченный поиск, а не неограниченное чтение памяти. Время O(n), память O(1).

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее