strlen函数
首先我们得先了解strlen函数。
1.strlen是一个库函数,使用时需要包含头文件include <string.h>;
2.字符串结束标识是’\0’,而strlen是计算’\0’之前的字符个数的,strlen遇到’\0’才结束,所以我们可以用它来计算字符串的字符个数。
模拟实现strlen函数我们下面给出三种方法
方法一:指针+1
#include <stdio.h>
#include <assert.h>
size_t my_strlen(const char* str)
{
int count = 0;
assert(*str != NULL);
while (*str != '\0')
{
count++;
str++;
}
return count;
}
int main()
{
char arr[] = "abcdef";
size_t len=my_strlen(arr);
printf("%zd\n", len);
return 0;
}
方法二:指针-指针
#include <stdio.h>
#include <assert.h>
size_t my_strlen(const char* str)
{
assert(*str != NULL);
char* start = str;
while (*str != '\0')
{
str++;
}
return str - start;
}
int main()
{
char arr[] = "abcdef";
size_t len=my_strlen(arr);
printf("%zd\n", len);
return 0;
}
方法三:递归,不创建临时变量
#include <stdio.h>
size_t my_strlen(const char* str)
{
if (*str != '\0')
{
return 1 + my_strlen(str + 1);
}
else
{
return 0;
}
}
int main()
{
char arr[] = "abcdef";
size_t len=my_strlen(arr);
printf("%zd\n", len);
return 0;
}