1. 程式人生 > >Strlen 函式的實現(C語言)

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;
}