C++でsizeofを使用して文字列の長さを取得する方法
C++では、sizeof演算子を使って文字列の長さを取得することができます。ただし、sizeof演算子は文字列がメモリ上で占めるバイト数を返すので、文字列の実際の長さと異なります。
文字列の長さを sizeof で求める際には、注意する点がいくつかあります。
- sizeof演算子は配列に対してのみ使用でき、ポインタ型文字列の文字列長を求める場合はstrlen関数を用いる必要があります。
- 文字列はnull文字’\0’で終わっていないと、sizeof演算子が文字列の長さを正しく計算できません。
- sizeof 演算子が返すサイズはNULL文字を含んでおり、文字列自体のサイズはサイズから 1 を引く必要があります。
文字列の長さをsizeofで取得する方法を示すサンプルコードを以下に示します。
#include <iostream>
int main() {
char str[] = "Hello";
int length = sizeof(str) - 1; // 减去1得到实际字符串长度
std::cout << "Length of string: " << length << std::endl;
return 0;
}
はい、結果は以下のとおりです:
Length of string: 5
注意,この方法は文字配列型の文字列にのみ適用可能で、ポインタ型の文字列にはstrlen関数を使用して文字列の長さを計算する必要があります。