是说只能char[]数组类型或char指针类型,可以使用strlen函数求其长度?如果是int型,例如:int len[3];len[0] = 1;len[1] = 2;printf("%s\n",strlen(len));打印是0?
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 16:39:44
![是说只能char[]数组类型或char指针类型,可以使用strlen函数求其长度?如果是int型,例如:int len[3];len[0] = 1;len[1] = 2;printf(](/uploads/image/z/10066045-13-5.jpg?t=%E6%98%AF%E8%AF%B4%E5%8F%AA%E8%83%BDchar%5B%5D%E6%95%B0%E7%BB%84%E7%B1%BB%E5%9E%8B%E6%88%96char%E6%8C%87%E9%92%88%E7%B1%BB%E5%9E%8B%2C%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8strlen%E5%87%BD%E6%95%B0%E6%B1%82%E5%85%B6%E9%95%BF%E5%BA%A6%3F%E5%A6%82%E6%9E%9C%E6%98%AFint%E5%9E%8B%2C%E4%BE%8B%E5%A6%82%EF%BC%9Aint+len%5B3%5D%3Blen%5B0%5D+%3D+1%3Blen%5B1%5D+%3D+2%3Bprintf%28%22%25s%5Cn%22%2Cstrlen%28len%29%29%3B%E6%89%93%E5%8D%B0%E6%98%AF0%3F)
是说只能char[]数组类型或char指针类型,可以使用strlen函数求其长度?如果是int型,例如:int len[3];len[0] = 1;len[1] = 2;printf("%s\n",strlen(len));打印是0?
是说只能char[]数组类型或char指针类型,可以使用strlen函数求其长度?
如果是int型,例如:
int len[3];
len[0] = 1;
len[1] = 2;
printf("%s\n",strlen(len));
打印是0?
是说只能char[]数组类型或char指针类型,可以使用strlen函数求其长度?如果是int型,例如:int len[3];len[0] = 1;len[1] = 2;printf("%s\n",strlen(len));打印是0?
strlen函数的原理你都搞错了,其原型应该是这样的:int strlen(char *);它接受的是一个char*类型的参数,真不晓得你的这个是怎么传递进去的.strlen计算字符串的长度例如"abc"的长度是3.但是实际上如果将其放到字符数组中的话,应该占4个元素.因为字符串是以字符'\0'结尾的,但是这个'\0'在我们的字符串是隐藏的,我们看不到.实际上是有的.例如:
char a[4]="abc";//这里数组的元素个数至少应该是4,否则此字符串不叫字符串了,只能叫字符数组了.
strlen判断一个字符串的结束就是以其末尾的'\0'为界限.其实现代码可以模拟为以下:
int strlen(char *p)
{
int i=0;
while(*p++)i++;
return i;
}
所以他是不包括'\0'这个字符的.