sizeof演算子で文字列の長さを求めるC言語の方法は?

文字列のサイズは、sizeof 演算子で取得できますが、取得されるのは、文字列変数のバイトサイズなので、実際の文字列の長さではないことに注意してください。

strlen関数を使用して文字列の実際の文字数を取得することができます。strlen関数は、文字列内の文字を文字列の終わりを表す’\0’に達するまで繰り返し、たどった文字数を(終わりを表す文字を含めずに)返します。

以下に sizeof と strlen を使って文字列の長さを取得する例を示します。

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello";
    int length1 = sizeof(str) - 1;  // 使用sizeof
    int length2 = strlen(str);     // 使用strlen

    printf("Length 1: %d\n", length1);
    printf("Length 2: %d\n", length2);

    return 0;
}

結果を出力します。

Length 1: 5
Length 2: 5

上記例で、sizeof(str) は str 配列が占めるバイト数を返すので、文字列の実長を得るには 1 を引く必要がある。一方、strlen(str) は str の実長を返し、終端に含まれない。

bannerAds