C语言中的strlen函数?

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

江户川乱折腾
浏览 322回答 2
2回答

慕侠2389804

strlen是测量字符串长度的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’不是合法的字符串,所以结果不对
打开App,查看更多内容
随时随地看视频慕课网APP