概述
首先要明确strlen函数的意义:
strlen所从事的是一个计数器的工作,它是用来计算字符串的长度。它可以从字符串的任意位置开始计数,直至碰到字符串末尾的‘/0’结束计数工作。
第一种方式:
设置一个计数器count,从字符串开始计数,直至碰到字符串末尾的‘/0'结束计数工作。
int my_strlen(const char * str)
{
int count = 0;
while (*str)
{
count++;
str++;
}
return count;
}
第二种方式:
用函数的递归实现。如果碰到空字符串则返回0,否则采用递归的方式将问题细化进行求解。解决问题的思想如下:好比求解‘12345678’的长度就相当于求解1+‘2345678’的长度,而1+‘345678’的长度,如此将问题规模不断缩小进行求解。采用递归的方式解决。
int my_strlen(const char * str)
{
if (*str == '/0')
return 0;
else
return 1 + my_strlen(str + 1);
}
第三种方式
用指针的方式实现,思想为:设立一个头结点,遍历整个字符串后得到尾指针,而尾指针与头指针的差正好为字符串间的元素个数。
int my_strlen(const char * str)
{
char *p = s;
while (*p != '