文字列の長さを求める

C++:
文字列の長さを求める

How to: (方法)

#include <iostream>
#include <string>

int main() {
    std::string myString = "こんにちは世界";
    std::cout << "The length of the string is: " << myString.length() << std::endl;
    // C++11以降、以下のようにも書けます
    std::cout << "The length of the string is: " << myString.size() << std::endl;
    return 0;
}

出力:

The length of the string is: 21
The length of the string is: 21

Deep Dive (詳細な解説)

文字列の長さを知る機能は、C++の初期から存在します。C言語ではstrlen関数が使われていましたが、C++ではstd::stringクラスで.length().size()メソッドが提供されています。これらのメソッドは、同じ結果を返しますが、適用する文脈によって使い分けることが推奨されます(.length()は文字列の長さが、.size()はコンテナの大きさが焦点の時に使います)。

内部的には、std::stringは文字の配列を管理しつつ、長さの情報を追跡することで高速に長さを報告します。これは計算の必要がなく、効率的です。

他にも、C++スタイルではstd::stringを使いますが、Cスタイルの文字列(NULLで終了する文字配列)でも長さはstrlen関数で取得可能です。しかし、安全性や使い勝手でstd::stringが推奨されます。

See Also (関連情報)