C语言的strlen的模拟实现
strlen是一个库函数,作用是计算字符串的长度
头文件为<string.h>
今天我们来用三种方式实现一下
循环
#include<stdio.h>
#include<assert.h>
size_t my_strlen(const char* arr)
{
size_t count = 0;
assert(arr);
while(*arr != '\0')
{
arr++;
count++;
}
return count;
}
int main()
{
char arr[] = { "abcdef" };
size_t a = my_strlen(arr);
printf("%zu", a);
return 0;
}
递归
#include<stdio.h>
#include<assert.h>
size_t my_strlen(const char* arr)
{
assert(arr);
if (*arr != '\0')
{
return 1 + my_strlen(arr + 1);
}
return 0;
}
int main()
{
char arr[] = { "abcdefahdwuhdaushdiauw" };
size_t a = my_strlen(arr);
printf("%zu", a);
return 0;
}
指针-指针
#include<stdio.h>
#include<assert.h>
size_t my_strlen(const char* arr)
{
assert(arr);
const char* a = arr;
while ( *arr != '\0')
{
arr++;
}
return arr - a;
}
int main()
{
char arr[] = { "abcdefahdwuhdaushdiauw" };
size_t a = my_strlen(arr);
printf("%zu", a);
return 0;
}

浙公网安备 33010602011771号