Spec-Zone.ru › C++

std::wcslen

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

Возвращает длину широкой строки, то есть количество неравных нулю широких символов, которые предшествуют завершающему нулевому широкому символу.

Поведение не определено, если в массиве широких символов, на который указывает str, нет нулевого символа.

Параметры

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

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

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

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

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

Пример

#include <clocale>
#include <cwchar>
#include <iostream>
 
int main()
{
    const wchar_t* str = L"爆ぜろリアル!弾けろシナプス!パニッシュメントディス、ワールド!";
 
    std::setlocale(LC_ALL, "en_US.utf8");
    std::wcout.imbue(std::locale("en_US.utf8"));
    std::wcout << "The length of \"" << str << "\" is " << std::wcslen(str) << '\n';
}

Вывод:

The length of "爆ぜろリアル!弾けろシナプス!パニッシュメントディス、ワールド!" is 32

См. также

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

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

Spec-Zone.ru

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