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

胡金庫 2023年10月12日
  1. C++ で length 関数を使用して文字列の長さを検索する
  2. C++ で size 関数を使用して文字列の長さを検索する
  3. C++ で while ループを使用して文字列の長さを検索する
  4. C++ で std::strlen 関数を使用して文字列の長さを検索する
C++ で文字列の長さを求める

この記事では、C++ で文字列の長さを求める方法のいくつかの方法について説明します。

C++ で length 関数を使用して文字列の長さを検索する

C++ 標準ライブラリは、std::basic_string クラスを提供して、char のようなシーケンスを拡張し、そのようなデータを格納および操作するための汎用構造を実装します。ただし、ほとんどの人は、それ自体が std::basic_string<char> の型エイリアスである std::string 型に精通しています。std::string は、保存された char シーケンスの長さを取得するための length 組み込み関数を提供します。

#include <cstring>
#include <iostream>

using std::cin;
using std::cout;
using std::endl;
using std::string;

int main(int argc, char *argv[]) {
  string str1 = "this is random string oiwaoj";

  cout << "string: " << str1 << endl;
  cout << "length: " << str1.length() << endl;

  exit(EXIT_SUCCESS);
}

出力:

string: this is random string oiwaoj
length: 28

C++ で size 関数を使用して文字列の長さを検索する

std::string クラスに含まれるもう 1つの組み込み関数は、size であり、前のメソッドと同様に動作します。引数をとらず、文字列オブジェクト内の char 要素の数を返します。

#include <cstring>
#include <iostream>

using std::cin;
using std::cout;
using std::endl;
using std::string;

int main(int argc, char *argv[]) {
  string str1 = "this is random string oiwaoj";

  cout << "string: " << str1 << endl;
  cout << "length: " << str1.size() << endl;

  exit(EXIT_SUCCESS);
}

出力:

string: this is random string oiwaoj
length: 28

C++ で while ループを使用して文字列の長さを検索する

あるいは、文字列の長さを計算するために独自の関数を実装することもできます。この場合、while ループを利用して文字列を char シーケンスとしてトラバースし、反復ごとに 1 ずつカウンターをインクリメントします。関数は引数として char を取り、c_str メソッドが呼び出されてメイン関数でこのポインターを取得することに注意してください。逆参照されたポインタ値が 0 に等しくなるとループが停止し、null で終了する文字列の実装がそれを保証します。

#include <cstring>
#include <iostream>

using std::cin;
using std::cout;
using std::endl;
using std::string;

size_t lengthOfString(const char *s) {
  size_t size = 0;

  while (*s) {
    size += 1;
    s += 1;
  }

  return size;
}

int main(int argc, char *argv[]) {
  string str1 = "this is random string oiwaoj";

  cout << "string: " << str1 << endl;
  cout << "length: " << lengthOfString(str1.c_str()) << endl;

  exit(EXIT_SUCCESS);
}

出力:

string: this is random string oiwaoj
length: 28

C++ で std::strlen 関数を使用して文字列の長さを検索する

最後に、昔ながらの C 文字列ライブラリ関数 strlen を使用できます。この関数は、カスタム定義関数 lengthOfString として単一の const char*引数を取ります。これらの最後の 2つのメソッドは、トラバーサル中に範囲外のメモリにアクセスする可能性があるため、ヌルバイトで終わらない char シーケンスで呼び出されると障害が発生する可能性があります。

#include <cstring>
#include <iostream>

using std::cin;
using std::cout;
using std::endl;
using std::string;

int main(int argc, char *argv[]) {
  string str1 = "this is random string oiwaoj";

  cout << "string: " << str1 << endl;
  cout << "length: " << std::strlen(str1.c_str()) << endl;

  exit(EXIT_SUCCESS);
}

出力:

string: this is random string oiwaoj
length: 28
著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook

関連記事 - C++ String