C++でsizeofを使用して文字列の長さを取得する方法

C++では、sizeof演算子を使って文字列の長さを取得することができます。ただし、sizeof演算子は文字列がメモリ上で占めるバイト数を返すので、文字列の実際の長さと異なります。

文字列の長さを sizeof で求める際には、注意する点がいくつかあります。

  1. sizeof演算子は配列に対してのみ使用でき、ポインタ型文字列の文字列長を求める場合はstrlen関数を用いる必要があります。
  2. 文字列はnull文字’\0’で終わっていないと、sizeof演算子が文字列の長さを正しく計算できません。
  3. 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関数を使用して文字列の長さを計算する必要があります。

bannerAds