长度为从字符串开始,到'\0'结束,所有字符的个数,不包括'\0'本身。
C语言的字符串是由字符数组形式保存的,并约定'\0'(ascii码值为0)作为字符串结束符。
strlen计算的是字符串的长度,单位是“字符”,只能对字符串运算,而且它是函数(不是运算符),计算时,不包含末尾的"\0";当对字符数组操作时,返回的是数组总存放的字符串的实际长度(也就是\0之前的),也就是当把数组作为参数传递给strlen时是会退化成char*指针的。
扩展资料:
strlen() 函数用于计算字符串的长度。
算出字符串 "Hello world!" 的长度:
<?php
echo strlen("Hello world!");。
?>
以上代码的输出:
12字符串的长度信息常常用在循环或其他函数中,因为那时确定字符串何时结束是很重要的(例如,在循环中,我们需要在字符串中的最后一个字符之后结束循环)。
参考资料来源:百度百科-strlen。
C语言计算字符串长度,可以手动计算也可以使用库函数或者sizeof()操作符。
方法:
自定义函数求长度
使用strlen()函数
使用sizeof()操作符
自定义函数:
int cont_str(char *s)。
int i = 0; 。
while ( str[i++] != '\0') ;。
return i;
使用string头文件中的strlen()函数:
strlen(str); //假设str为待求的字符串数组名。
使用sizeof()操作符:
sizeof(str)/sizeof(str[0]); //假设str为待求的字符串数组名。
注意:
strlen()函数求出的字符串长度为有效长度,既不包含字符串末尾结束符 ‘\0’;
sizeof()操作符求出的长度包含字符串末尾的结束符 ‘\0’;
当在函数内部使用sizeof()求解由函数的形参传入的字符数组的长度时,得到的结果为指针的长度,既对应变量的字节数,而不是字符串的长度,此处一定要小心。
C语言中字符串长度的函数是strlen(),一个字符的长度为1;
函数原型:
unsigned int strlen (char *s);头文件:
#include <string.h>参数说明:s为指定的字符串;
功能说明:strlen()用来计算指定的字符串s 的长度,不包括结束字符'\0';
返回值:返回字符串s 的字符数;。
注意:strlen() 函数计算的是字符串的实际长度,遇到第一个'\0'结束。
示例:
#include<stdio.h>#include<string.h>int main(){ char str[] = "ab\nxyz";//\n为回车字符,占一个字节 printf("strlen(str)=%d\n", strlen(str)); return 0;}//输出结果:strlen(str)=6 收起。
sizeof是求类型的大小,不管是表达式还是后面直接加类型;换种说法是在其后表达式在内存中占用的字节。
p是char *类型,当然是4字节。
改为char p[] = "hello";。
这就是后面字符串的长度。
sizeof(p);求得是指针p的大小,不管你上面是任何类型,任何字符串,都是4,因为指针的空间大小就是4;
char *p="hello";//改成char p[]="hello";。
cout<<sizeof(p);//结果是6,字符串后面还有个'\0'字符。
cout<<strlen(p); //结果是5,忽略此字符。
字符串在存储上类似字符数组
它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。
设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
以上内容参考:百度百科-字符串。
这是用 C 语言编写的程序,可以计算字符串的长度:
在这段代码中,我们定义了一个函数 string_length,用于计算字符串的长度。函数接受一个参数 string,表示要计算长度的字符串。在函数内部,我们使用 C 语言的内置函数 strlen 来计算字符串的长度,并返回结果。
在 main 函数中,我们定义了一个字符串数组 string,并调用了函数 string_length 来计算它的长度。最后,我们使用 printf 函数输出结果。运行这段代码后,会输出字符串 "Hello, world!" 的长度,即 13。
注意:在 C 语言中,字符串数组是一种特殊的数组,其末尾会自动添加一个 null 结束符 '\0'。所以,上述代码中的字符串数组 string 实际上是一个 13 字节的数组,其中前 12 个字节存储字符串的内容,最后一个字节存储 null 结束符。