亲宝软件园·资讯

展开

c++ strlen函数模拟实现strlen 浅析C++中strlen函数的使用与模拟实现strlen的方法

S for N 人气:0
想了解浅析C++中strlen函数的使用与模拟实现strlen的方法的相关内容吗,S for N在本文为您仔细讲解c++ strlen函数模拟实现strlen的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:strlen函数模拟实现strlen,c++,strlen函数使用,下面大家一起来学习吧。

strlen函数的简单运用与模拟实现 strlen函数的简单使用strlen函数的三种模拟实现使用临时变量的方法使用函数递归的方法使用指针相减的方法

strlen函数的简单使用

strlen函数是用来计算字符串长度的一个函数,返回类型是size_t
#include<stdio.h>
#include<string.h>
int main()
{
	char arr[] = "hello world";
	size_t;//返回值是size_t unsigned int
	int len = strlen(arr);
	printf("len=%d\n", len);
	return 0;
}

下面就是对于返回值类型是size_t的一个很形象的例子

int main()
{
	const char* p1 = "abc";
	const char* p2 = "adbcdef";
	if (strlen(p1) - strlen(p2) > 0)
		//因为返回值是无符号数,所以没有负数
	{
		printf("hehe");
	}
	else
	{
		printf("haha");
	}
	return 0;
}

strlen函数的三种模拟实现

使用临时变量的方法

#include<stdio.h>
#include<assert.h>
//模拟实现strlen
size_t my_strlen(const char* str)
{
	int count = 0;//计数器
	assert(str != NULL);
	//断言不是空指针,如果没有这步,当是空指针的时候可能会崩溃
	while (*str != '\0')
	{
		count++;
		str++;
	}
	return count;
}
int main()
{
	char arr[] = "hello";
	int len = my_strlen(arr);
	printf("%d\n", len);
	return 0;
}

使用函数递归的方法

#include<stdio.h>
#include<assert.h>
//不使用临时变量
size_t my_strlen(const char* str)
{
	assert(str != NULL);
	if (*str != '\0')
	{
		return 1 + my_strlen(str + 1);
	}
	else
	{
		return 0;
	}
}
int main()
{
	char arr[] = "hello";
	int len = my_strlen(arr);
	printf("%d\n", len);
	return 0;
}

使用指针相减的方法

//指针相减的做法
size_t my_strlen(const char* str)
{
	assert(str != NULL);
	const char* start = str;
	//str 不能初始化char类型,所以用const
	while (*str != '\0')
	{
		str++;
	}
	return str - start;
}
int main()
{
	char arr[] = "hello";
	int len = my_strlen(arr);
	printf("%d\n", len);
	return 0;
}

加载全部内容

相关教程
猜你喜欢
用户评论