include <stdio.h>
#include <string.h>
#include<stdlib.h>
size_t strlenf(const int *s)//const 表示该值不可再被修改,这里的size_t是一种数据类型,表示无符号的整数
{
        size_t n;
	for(n=0;*s!='\0';s++)
		n++;
	return n;
}
/*
优化后的代码
size_t strlenf(const char *s)
{
	const char *p=s;
	while(*s)
		s++;
	return s-p;
}
*/

int main ()

{
int  arr[9]={9,8,9,5,6,5,4,5,7};
char brr[10]={9,10,'\0',6};
har  crr[6]={'f','g','o','p','k','k'};//这里是字符,最多可以放6个
char b[4]={'k','i','o'};
char m[10]={"hhhhhhhhh"};//这里是字符串,数组长度是10,但是最多放9个元素
printf ("%d\n",strlenf(arr));//22
printf ("%d\n",strlen(brr));//遇到\0就结束函数,后面的都不会再计算
printf ("%d\n",strlen(crr));//18
printf ("%d\n",strlen(b));//3
rintf ("%d\n",strlen(m));//9
return 0;
}

 

/*收获:

第一 string头文件中的函数strlen 只可以用来测试字符型数组的长度,其他类型不可以

 

第二 如果要测试int 修改原函数中的参数,会导致数组长度变长(计算机会一直找下去,直到遇到\0)

 

第三 如果是字符数组,当里面的字符数少于数组长度时,可以正常输出用strlen,如果等于数组长度,则会出现问题

 

*/

更多推荐

c语言基础知识 strlen函数用法