C语言中的strlen函数

发布网友 发布时间:2022-04-24 03:26

我来回答

5个回答

热心网友 时间:2023-05-16 11:49

strlen()只是统计字符串的长度,统计到'\0'结束,但不包括'\0',这个与sizeof()不一样。
对于用双引号引起来的字符串,系统默认最后一位字符为'\0',如你自己定义的:
char a[]="china";
char b[]={"china"};
另外,数组初始化还可以是一个字符一个字符赋值,如:
char c[]={'c','h','i','n','a'};
char d[]={'c','h','i','n','a','\0'};
但系统不会自动给你在最末位添加'\0’
所以在统计char c[]={'c','h','i','n','a'}时,统计到a时,系统还没找到\0,所以会继续统计,直到找到'\0'为止。所以就有你第三个值为11的情况,这个根据不同的运行环境而定。

热心网友 时间:2023-05-16 11:49

strlen是测量字符串长度的
char d[]={'c','h','i','n','a','\0'}和char a[]="china"; char b[]={"china"}; 是等价的 是数组的表示形式
而char c[]={'c','h','i','n','a'};却是字符数组所以并不能得到结果

热心网友 时间:2023-05-16 11:50

strlen函数测量字符串中字符个数,不包括结尾的'\0'字符,你的 char c[]没有结尾的‘\0’不是合法的字符串,所以结果不对

热心网友 时间:2023-05-16 11:50

strlen是字符串长度统计函数,他不包含字符串结束符“\0”;
求字符数组长度可以用 sizeof()如你上面的问题可以用:
sizeof(c)/sizeof(c[0])

热心网友 时间:2023-05-16 11:51

strlen是求字符串长度的函数。
函数原型:unsigned int strlen(char *s);
参数:s是char类型的指针,指向要求长度的字符串
返回值:返回字符串的长度,返回类型是无符号整型
注意:
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含“\0”)。
实例:
#include<string.h>
#include<stdio.h>
int main(void)
{
char*s="GoldenGlobalView";
printf("%s has %d chars",s,strlen(s));
getchar();
return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com