1.递归 不创建临时变量
#include<stdio.h>
#include<assert.h>
size_t
my_strlen(char * str
)
{
if (*str
== '\0')
{
return 0;
}
return 1 + my_strlen(str
+ 1);
2.指针相减
size_t
my_strlen(const char *str
)
{
assert(str
!= NULL);
const char *start
= str
;
while (*str
!= '\0')
{
str
++;
}
return str
- start
;
}
3.创建临时变量
size_t
my_strlen(const char * str
)
{
assert(str
!= NULL);
int count
= 0;
while (*str
!= '\0')
{
str
++;
count
++;
}
return count
;
}
assert是断言,如果指针指向为空则会发出警告。 const 修饰* str ,指针所指向内容不能改变,更加安全。
转载请注明原文地址: https://lol.8miu.com/read-61.html