Strlen 函数的实现(C语言)

非递归:

核心思想:字符指针向后移动,未遇到‘\0’,则计数累加。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<stdlib.h>
#include <string.h>
int strlen(char* str)
{
	int count = 0;
	while (*str != '\0')
	{
		count++;
		str++;
	}
	return count;
}
int main()
{
	char* p = "abcdef";
	int len = strlen(p);
	printf("%d\n", len);
	system("pause");
	return 0;
}

递归:

核心思想:

int  strlen ( char *  str )

出口:空串返回0;

递推: 1 + strlen (str + 1)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
int strlen(char* str)
{
	if (*str == '\0')
		return 0;
	else return 1 + strlen(str + 1);
}
int main()
{
	char* p = "abcdef";
	int len = strlen(p);
	printf("%d\n", len);
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/C_U_N_Z/article/details/84574250