C中字符串的strlen()和sizeof()之间的区别
什么是strlen()
strlen() 是一个查找字符串长度的函数。它计算字符串中出现的总字符数,消除空字符。字符串中的字符总数包括字母、特殊字符和数字,带空格。
在 C 教程中字符串的 strlen() 和 sizeof() 之间的区别中,您将了解到:
- 什么是strlen()
- 什么是 sizeof()
- strlen() 的语法
- sizeof() 的语法
- strlen() 和 sizeof() 的区别
什么是 sizeof()
sizeof() 是一个用于计算其操作数大小的函数。它返回特定变量的大小。此函数可应用于任何数据类型,包括原始类型,如整数和指针类型、浮点类型、结构或联合。包含 sizeof() 的程序的输出在 32 位系统和 64 位系统上可能不同。
主要区别:
- 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<stdio.h> #include<string.h> int main() { char strng[] = "January"; printf("Length of given string is: %lu\n", strlen(strng)); }
输出:
Length of given string is: 7
sizeof() 的语法
语法 1)
大小(类型): type=引用类型
sizeof(type) 示例:
在下面的代码中,&type 给出了变量的地址(双 x)。它以 1 递增,给出可以存储下一个 x 类型变量的地址。
将 x 类型转换为 char* 并获取差异将使您知道存储在内存中的 char 类型变量的总数。我们已经使用 getchar() 来读取字符。
#include<stdio.h> #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=你想确定大小的变量的名称。
在下面的 C 程序中,我们打印 size char 数据类型。 printf 语句包含 sizeof 函数,参数为 char。
sizeof(variable-name) 示例:
#include<stdio.h> int main() { printf("sizeof(char) = %d\n\n", sizeof(char)); return 0; }
输出:
sizeof(char) = 1
语法 3)
大小(表达式): Expression=你必须评估的表达式。
sizeof(表达式)示例:
在下面的程序中,我们首先计算并打印变量的大小。之后,我们对表达式求值,将其存储在变量 a 中,并在 printf 语句中显示结果。
#include<stdio.h> int main() { char p = 'S'; double q = 4.65; printf("Size of variable p : %d\n",sizeof(p)); printf("Size of an expression : %d\n",sizeof(p+q)); int a = (int)(p+q); printf("Size of explicitly converted expression : %d\n",sizeof(a)); return 0; }
输出:
Size of variable p : 1 Size of an expression : 8 Size of explicitly converted expression : 4
strlen() 和 sizeof() 的区别
以下是strlen() 和sizeof() 的重要区别:
C语言