strlen,include?
#include

#include
int main(int argc, char *argv[])
{
char p[20]={'a','b','c'};
char q[]="abc";
printf("%d,%d\n",sizeof(p),strlen(p));
printf("%d,%d\n",sizeof(q),strlen(q));
return 0;
}
结果是20,3
4,3
sizeof(p)是你定义的数组的大小,跟里面的值没关系
strlen()是用来求字符串的长度,你里面至初始化了3个值
sizeof(q)是求字符数组的长度,虽然你只初始化了3个数组元素,但第四个元素系统会自动赋值为'\0','\0'是字符串结束的表示;但用strlen()函数来长度的值的时候是不包括'\0'的
希望不明白可以继续提问,乐意回答
strlen的长度是多少?
strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义了一个字符型数组但没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。
strlen函数可以直接用吗?
不可以,需要判断字符串是否为空
strlen是啥?
strlen所作的是一个计数器的工作。
strlen从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。返回s的长度,不包括结束符NULL。


还没有评论,来说两句吧...