目录
1.前言
2.计数器
?3.递归
4.指针?指针
1.前言
在实现strlen函数之前我们要先了解strlen函数怎样工作的;
在这里我们重点看一下Return Value的内容,翻译过来就是:其中每个函数都返回字符串中的字符数,不包括终端 NULL。大致的意思就是strlen函数在运行时每碰到一个字符就加一,当碰到NULL也就是'\0'时会返回前面所有加一的和。
我们知道一串字符串在数组中存储时是以’\0‘结尾,即
?知道这些我们就能实现strlen函数啦
2.计数器
#include <stdio.h>
int my_strlen(char * p)
{
int count = 0;//计数器
while (1)
{
count++;
p++;
if (*p == '\0')
{
break;
}
}
return count;
}
int main()
{
char arr[] = "abcdef";
int num = my_strlen(arr);
printf("%d ", num);
return 0;
}
?3.递归
#include <stdio.h>
int my_strlen(char* p)
{
if (*p == '\0')
{
return 0;
}
else
return 1 + my_strlen(p + 1);
}
int main()
{
char arr[] = "abcdef";
int num = my_strlen(arr);
printf("%d ", num);
return 0;
}
4.指针?指针
首先我们要先知道指针?指针的含义:指针-指针得到的是两个这指针之间的元素个数(前提:两个指针指向同一块空间)
#include <stdio.h>
int my_strlen(char* p)
{
char* start = p;
char* end = NULL;
while (*p != '\0')
{
p++;
end = p;
}
return end - start;
}
int main()
{
char arr[] = "abcdef";
int num = my_strlen(arr);
printf("%d ", num);
return 0;
}
今天的分享就到这了,若有错误请各位前辈指正!!
|