strlen()
C语言库函数,包含于头文件<string.h>中,用于计算给定字符串str的长度(不包含结束标志’\0’)并返回。
接下来用递归和非递归方法实现strlen()函数
非递归方法
int my_strlen(const char * str)
{
int count = 0;
assert(str != NULL);//断言
while (*str != '\0')
{
count++;
str++;
}
return count;
}
递归方法
int my_strlen(const char * str)
{
assert(str != NULL);//断言
if (*str != '\0')
return 1 + my_strlen(str+1);
else
return 0;
}
完整程序
#include <stdio.h>
#include <assert.h>
//非递归
int my_strlen1(const char * str)
{
int count = 0;
assert(str != NULL);//断言
while (*str != '\0')
{
count++;
str++;
}
return count;
}
//递归
int my_strlen2(const char * str)
{
assert(str != NULL);//断言
if (*str != '\0')
return 1 + my_strlen2(str+1);
else
return 0;
}
int main()
{
char arr[] = "hello";
//递归
int len1 = my_strlen1(arr);
printf("len1 = %d\n", len1);
//非递归
int len2 = my_strlen2(arr);
printf("len2 = %d\n", len2);
system("pause");
return 0;
}
调用函数计算字符串“hello”长度,结果为5