递归和非递归分别实现strlen
代码实现 (环境:Visual Studio 2017)
//递归和非递归分别实现strlen
#include<stdio.h>
#include<windows.h>
int D_StrL(char *str) //递归
{
if (*str == '\0')
{
return 0;
}
return 1 + D_StrL(++str);
}
int FD_StrL(char *str) //非递归
{
int i = 0;
for(;str[i] != '\0';i++)
{
}
return i;
}
int main()
{
char str[] = { "abcdefghijk" };
int DS = 0;
int FDS = 0;
DS = D_StrL(str);
FDS = FD_StrL(str);
printf("递归结果:%d\n", DS);
printf("费递归结果:%d\n", FDS);
system("pause");
return 0;
}