Spec-Zone.ru › C++

std::strlen

Определено в заголовке <cstring>
std::size_t strlen( const char* str );

Возвращает длину заданной строковой последовательности байтов, то есть количество символов в массиве символов, первый элемент которого указан по адресу str до, но не включая, первого нулевого символа. Поведение неопределено, если в массиве символов, на который указывает str, нет нулевого символа.

Параметры

str - указатель на завершаемую нулём строковую последовательность байтов для проверки

Возвращаемое значение

Длина завершаемой нулём строки str.

Возможная реализация

std::size_t strlen(const char* start)
{
    // NB: start is not checked for nullptr!
    const char* end = start;
    while (*end != '\0')
        ++end;
    return end - start;
}

Пример

#include <cstring>
#include <iostream>
 
int main()
{
    const char str[] = "dog cat\0mouse";
 
    std::cout << "without null character: " << std::strlen(str) << '\n'
              << "with null character: " << sizeof str << '\n';
}

Вывод:

without null character: 7
with null character: 14

См. также

wcslen
возвращает длину широкой строки
(функция)
mblen
возвращает количество байтов в следующем многобайтовом символе
(функция)
Документация C для strlen

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string/byte/strlen

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API