10分(不知道者勿扰)---求strlen(const char *s)

来源:百度知道 编辑:UC知道 时间:2024/05/31 11:56:55
char *s ="cattle";
求strlen(s)=? //6还是7,为什么

6
c[0]='c'
c[1]='a'
c[2]='t'
c[3]='t'
c[4]='l'
c[5]='e'
c[6]='\0'
当c[i]!='\0'时length+=1;

楼上的不对
C语言中 字符串表示为字符数组的形式
系统自动为每个字符串加上\0表示字符串结束,所以
s在内存中为c a t t l e \0.占用了7个字节的内存
---但是strlen这个C语言库函数在计算时没有算\0.也就是
说返回的是不带\0的长度。
网上有很多资料可以参看这个函数的原形。
以下是我自己写的一段实现的代码,跟原形应该差不多。
int strlen(char * s)
{
char *p=s;
int i=0;
while(*p)//一旦p*是\0就跳出,所以i不包括\0
{p++; i++;}
return i;
}

6,返回有效字符长度,不算'\0',你试一下不是就可以知道了嘛