strlen 和sizeof 的区别

strlen和sizeof是C和C++中用来处理字符串的两个不同的操作符。

  1. strlen函数用于计算以空字符结尾的字符串的长度,即字符串中字符的个数(不包括字符串末尾的空字符’\0’)。它的原型是:
size_t strlen(const char *str);

strlen的返回类型是size_t,它可以根据实际字符串的长度来表示较大的整数值。使用strlen函数时,需要包含头文件<string.h>。例如:

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

int main() {
    
    
    char str[] = "Hello, World!";
    size_t length = strlen(str);

    printf("Length of str: %zu\n", length);

    return 0;
}

输出结果:

Length of str: 13
  1. sizeof是一个运算符,用于计算数据类型或变量所占的字节数。它可以返回编译时的字节数,包括数据类型、数组、结构体等。sizeof返回的类型是size_t。例如:
#include <stdio.h>

int main() {
    
    
    int num;
    double arr[10];

    printf("Size of int: %zu bytes\n", sizeof(int));
    printf("Size of double array: %zu bytes\n", sizeof(arr));

    return 0;
}

输出结果:

Size of int: 4 bytes
Size of double array: 80 bytes

需要注意的是,sizeof是一个编译时操作符,而不是在运行时计算的函数。它可以直接应用于数据类型、变量等,而不需要引入任何特定的头文件。

因此,strlen用于计算字符串的长度,sizeof用于计算数据类型或变量的字节数。它们在功能和应用上有所不同。

猜你喜欢

转载自blog.csdn.net/weixin_37787043/article/details/132708564