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: 21Deep Dive (詳細な解説)
文字列の長さを知る機能は、C++の初期から存在します。C言語ではstrlen関数が使われていましたが、C++ではstd::stringクラスで.length()や.size()メソッドが提供されています。これらのメソッドは、同じ結果を返しますが、適用する文脈によって使い分けることが推奨されます(.length()は文字列の長さが、.size()はコンテナの大きさが焦点の時に使います)。
内部的には、std::stringは文字の配列を管理しつつ、長さの情報を追跡することで高速に長さを報告します。これは計算の必要がなく、効率的です。
他にも、C++スタイルではstd::stringを使いますが、Cスタイルの文字列(NULLで終了する文字配列)でも長さはstrlen関数で取得可能です。しかし、安全性や使い勝手でstd::stringが推奨されます。