一.strlen函数的用法
1. strlen是库函数,使⽤需要包含头⽂件 string.h。
我们可以在cplusplus.com - The C++ Resources Network官网上查询一下strlen函数:
2. srtlen是求字符串⻓度的,统计的是 \0 之前字符的个数。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main()
{
char* str = "abcdef";
int i =strlen(str);
printf("%d", i);
return 0;
}
二.strlen函数的模拟实现
接下来,我们开始创建一个函数来模拟strlen函数的实现
1.计数器
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<assert.h>
int my_strlen(char* str1)
{
assert(str1);//断言,判断指针不能为NULL
int count = 0;
while (*str1)
{
str1++;
count++;
}
return count;
}
int main()
{
char* str = "abcdef";
int i = my_strlen(str);
printf("%d", i);
return 0;
}
2.数组-数组
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<assert.h>
int my_strlen(char* str1)
{
assert(str1 !=NULL);
char* ret = str1;
while (*str1)
{
str1++;
}
return str1 - ret;
}
int main()
{
char* str = "abcdef";
int i = my_strlen(str);
printf("%d",i);
return 0;
}
3.递归
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<assert.h>
int my_strlen(char* str1)
{
assert(str1 !=NULL);
char* ret = str1;
while (*str1)
{
str1++;
}
return str1 - ret;
}
int main()
{
char* str = "abcdef";
int i = my_strlen(str);
printf("%d",i);
return 0;
}