C++ で文字列の長さを求める
-
C++ で
length関数を使用して文字列の長さを検索する -
C++ で
size関数を使用して文字列の長さを検索する -
C++ で
whileループを使用して文字列の長さを検索する -
C++ で
std::strlen関数を使用して文字列の長さを検索する
この記事では、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
