Помогите пожалуйста написать функцию

Нужно написать функцию для определения длины строки, полностью аналогичную библиотечной strlen.


Ответы (2 шт):

Автор решения: Павел Ериков

Каждая строка в Си заканчивается детерминирующим нулем (\0) и чтобы узнать длину строки достаточно пройти от начала и до этого нуля.

int strlen(char* str) {
    char* s = str;
    int size = 0;
    while (*s != '\0') {
        ++size;
        ++s;
    }
    return size;
}

Вот реализация покомпактнее:

int strlen1(char* str) {
    int size = 0;
    for (char* s = str; *s; ++s, ++size);
    return size;
}
→ Ссылка
Автор решения: SelfishCrawler
int strlen_custom(const char* str)
{
    int length = 0;
    while (str[length] != '\0')
        length++;
    return length;
}

Вариант через указатели

size_t strlen_custom(const char* str)
{
    const char* end = str;
    while (*end++);
    return end - str - 1;
}
→ Ссылка