C中字符串的strlen()和sizeof()之间的差异

发布于:2021-02-20 00:00:50

0

204

0

C 字符串 strlen() sizeof()

什么是strlen()

strlen()是一个查找字符串长度的函数。它统计字符串中显示的字符总数,消除空字符。字符串中的字符总数包括字母、特殊字符和数字,其中包含空格。

在C教程中strlen()和sizeof()对于字符串的区别中,您将了解:

  • 什么是strlen()

  • 什么是sizeof()

  • strlen()的语法

  • sizeof()的语法

  • strlen()和sizeof()之间的区别

什么是sizeof()

sizeof()是一个用于计算其操作数大小的函数。它返回特定变量的大小。此函数可以应用于任何数据类型,包括诸如整数和指针类型、浮点类型、结构或联合之类的基元类型。在32位系统和64位系统上,包含sizeof()的程序的输出可能不同。

关键区别:

  • Strlen方法用于查找数组的长度,而sizeof()方法用于查找数据的实际大小。

  • Strlen()计算字符串中的字符数,而sizeof()返回操作数的大小。

  • Strlen()查找变量的空值,但sizeof()不在乎变量值。

  • strlen()中的返回值是long int,而sizeof()中的返回值是unsigned int。

strlen()的语法

strcount = strlen(my_string);

这里,my_string是一个字符数组变量。

strlen()示例

在下面的C程序中,我们声明了char类型的字符串变量。Strng变量作为strlen()函数的参数传递,用于查找字符串的长度。

#include#includeint main() {     char strng[] = "January";     printf("Length of given string is: %lun", strlen(strng));   }

输出:

Length of given string is: 7

sizeof()的语法

语法1

sizeof(type):type=引用的类型

sizeof(type)示例:

在下面的代码中,&type给出变量的地址(双x)。它以1递增,这给出了可以存储下一个x类型变量的地址。

将x类型转换为char*并取其差值将使您能够知道存储在内存中的char类型变量的总数。我们使用getchar()读取字符。

#include#define my_sizeof(type) (char *)(&type+1)-(char*)(&type) int main() {     double x;     printf("%ld", my_sizeof(x));     getchar();     return 0; }

输出:

8

语法2

sizeof(variable name):variable name=要确定大小的变量的名称。

在下面的C程序中,我们打印的是大小字符数据类型。Printf语句包含带有参数char的sizeof函数。

sizeof(变量名)示例:

#includeint main(){ printf("sizeof(char) = %dnn", sizeof(char)); return 0;}

输出:

sizeof(char) = 1

语法3

sizeof(expression):expression=必须计算的表达式。

sizeof(表达式)示例:

在下面的程序中,我们首先计算并打印变量的大小。之后,我们计算表达式,将其存储在变量a中,并在printf语句中显示结果。

#includeint main() {   char p = 'S';   double q = 4.65;   printf("Size of variable p : %dn",sizeof(p));   printf("Size of an expression : %dn",sizeof(p+q));   int a = (int)(p+q);   printf("Size of explicitly converted expression : %dn",sizeof(a));   return 0;}

输出:

Size of variable p : 1                                                                                                                               Size of an expression : 8                                                                                                                            Size of explicitly converted expression : 4

strlen()和sizeof()之间的区别

以下是strlen()和sizeof()之间的重要区别:

{xunruicms_img_title}