学习目标:
- 使用代码模拟实现strlen。
逻辑:
- strlen 需要输入一个字符串数组类型的变量,并且返回一个整型类型的数据。
- strlen 需要计算字符串数组有多少个元素。
代码1:使用计数器
cpp
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int strlen_mine(char * pc)
{
int count = 0;
for (int i = 0; pc[i] != '\0'; i++)
{
count++;
}
return count;
}
int main()
{
char str[6] = "ALICE";
int ret = strlen_mine(str);
printf("%d", ret);
return 0;
}

代码2:使用递归
cpp
int strlen_mine2(char* pc)
{
if (*pc == '\0')
{
return 0;
}
else
{
return (strlen_mine2(pc + 1) + 1);
}
}
int main()
{
char str[6] = "ALICE";
int ret = strlen_mine2(str);
printf("%d", ret);
return 0;
}

代码3:使用指针 - 指针
cpp
int strlen_mine3(char* pc)
{
assert(pc);
char* p = pc;
while(*p != '\0')
{
p++;
}
return (p - pc);
}
int main()
{
char str[6] = "ALICE";
int ret = strlen_mine3(str);
printf("%d", ret);
return 0;
}

这里一共提供了三种思路供大家参考。
相关链接:
完