名前空間
変種
操作

std::char_traits<char>::length, std::char_traits<wchar_t>::length, std::char_traits<char8_t>::length, std::char_traits<char16_t>::length, std::char_traits<char32_t>::length

From cppreference.com
< cpp‎ | string‎ | char traits
static std::size_t length( const char_type* s );
(C++17 以降 constexpr)

sが指す文字シーケンスの長さを返します。これは、終端のヌル文字 (char_type()) の位置です。

X::length に対する文字トレイトの一般的な要件については、CharTraits を参照してください。

目次

[編集] パラメータ

s - 長さを返す文字シーケンスへのポインタ

[編集] 戻り値

sが指す文字シーケンスの長さ。

[編集] 複雑さ

線形。

[編集]

#include <iomanip>
#include <iostream>
#include <string>
 
void print(const char* str)
{
    std::cout << std::quoted(str) << " has length = "
              << std::char_traits<char>::length(str) << '\n';
}
 
int main()
{
    print("foo");
 
    std::string s{"booo"};
    print(s.c_str());
}

出力

"foo" has length = 3
"booo" has length = 4
English 日本語 中文(简体) 中文(繁體)