C言語でsizeofを使用して文字列の長さを取得の方法
C言語では、sizeof演算子を使って文字列の長さを取得することができます。ただし、sizeof演算子は文字列がメモリ上で占有するバイト数を取得するため、文字列の実際の長さ(文字数)を得ることはできません。
文字列の実長を知りたい場合はstrlen関数を使うといいでしょう。以下はsizeofとstrlenという2つの方法で文字列の長さを求めるサンプルコードです。
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello, World!";
int size_with_sizeof = sizeof(str);
int size_with_strlen = strlen(str);
printf("Size of str (with sizeof): %d\n", size_with_sizeof);
printf("Size of str (with strlen): %d\n", size_with_strlen);
return 0;
}
ネイティブの日本語で言い換えると、
Size of str (with sizeof): 15
Size of str (with strlen): 13
sizeofで求めた文字列の長さは15ですが、strlenで求めた文字列の長さは13です。これは、strlen関数が文字列中の有効な文字数のみをカウントし、文字列の最後につく空文字’\0’をカウントしないからです。