C语言中的strlen函数
C语言中的strlen函数可以测量字符串的长度,比如测chara[]="china";charb[]={"china"};那么它可以测charc[]={'c','h','...
C语言中的strlen函数可以测量字符串的长度,比如测 char a[]="china"; char b[]={"china"}; 那么它可以测 char c[]={'c','h','i','n','a'};的长度吗?char d[]={'c','h','i','n','a','\0'};呢?
#include<stdio.h>
void main()
{
char a[]="china";
char b[]={"china"};
char c[]={'c','h','i','n','a'};
char d[]={'c','h','i','n','a','\0'};
printf("a=%d\nb=%d\nc=%d\nd=%d\n",strlen(a),strlen(b),strlen(c),strlen(d));
getch();
}
这个程序的结果是:
a=5
b=5
c=11
d=5 展开
#include<stdio.h>
void main()
{
char a[]="china";
char b[]={"china"};
char c[]={'c','h','i','n','a'};
char d[]={'c','h','i','n','a','\0'};
printf("a=%d\nb=%d\nc=%d\nd=%d\n",strlen(a),strlen(b),strlen(c),strlen(d));
getch();
}
这个程序的结果是:
a=5
b=5
c=11
d=5 展开
5个回答
展开全部
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的情况,这个根据不同的运行环境而定。
对于用双引号引起来的字符串,系统默认最后一位字符为'\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的情况,这个根据不同的运行环境而定。
展开全部
strlen是测量字符串长度的
char d[]={'c','h','i','n','a','\0'}和char a[]="china"; char b[]={"china"}; 是等价的 是数组的表示形式
而char c[]={'c','h','i','n','a'};却是字符数组所以并不能得到结果
char d[]={'c','h','i','n','a','\0'}和char a[]="china"; char b[]={"china"}; 是等价的 是数组的表示形式
而char c[]={'c','h','i','n','a'};却是字符数组所以并不能得到结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
strlen函数测量字符串中字符个数,不包括结尾的'\0'字符,你的 char c[]没有结尾的‘\0’不是合法的字符串,所以结果不对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
strlen是字符串长度统计函数,他不包含字符串结束符“\0”;
求字符数组长度可以用 sizeof()如你上面的问题可以用:
sizeof(c)/sizeof(c[0])
求字符数组长度可以用 sizeof()如你上面的问题可以用:
sizeof(c)/sizeof(c[0])
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
函数原型: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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询