1. Topic
Implement the strlen function
2. Program code
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <Windows.h>
#include <assert.h>
int my_strlen1(const char *str)//创建临时变量
{
assert(str);
int count = 0;
while (*str)
{
count++;
str++;
}
return count;
}
int my_strlen2(const char *str)//递归函数
{
assert(str);
if (*str == '\0')
{
return 0;
}
return 1 + my_strlen2(str + 1);
}
int my_strlen3(const char *str)//指针相减法:指针-指针得到的就是中间元素的个数
//只有两个指针指向同一块内存时才可以使用
{
assert(str);
char *start = str;
while (*start)
{
start++;
}
return start - str;
}
int main()
{
char str[] = "abvdefg";
printf("%d\n", my_strlen1(str));
printf("%d\n", my_strlen2(str));
printf("%d\n", my_strlen3(str));
system("pause");
return 0;
}