strlen
是计算机C语言函数,计算字符串s的(unsigned int型)长度,不包括’\0’在内。strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值。
(1)计数器
#include<stdio.h>
#include<string.h>
#include
#include<assert.h>
unsigned int Is_strlen(char *arr)
{
int count = 0;
assert(arr != NULL);
while (*arr != ‘\0’)
{
count++;
*arr ++;
}
return count;
}
int main()
{
char *arr = “I Love You!” ;
int ret=Is_strlen(arr);
printf("%d\n",ret);
system(“pause”);
return 0;
}
(2)指针减指针
unsigned int my_strlen(const char* str)
{
const char* src= str;
while (*src != ‘\0’)
{
*src++;
}
return (src - str);
}
int main()
{
const char str[] = “abcdef”;
int ret = my_strlen(str);
printf("%d\n", ret);
system(“pause”);
return 0;
}
(3)递归
int my_strlen(const char* str)
{
if (*str == NULL)
{
return 0;
}
else
return 1 + my_strlen(++str);
}
int main()
{
const char str[] = “abcdef”;
int ret = my_strlen(str);
printf("%d\n", ret);
system(“pause”);
return 0;
}