欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

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

时间:2022-02-05 10:50:24|栏目:C代码|点击:

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

上一篇:C语言转义字符详解

栏    目:C代码

下一篇:C语言分装实现三子棋游戏详解

本文标题:浅析C++中strlen函数的使用与模拟实现strlen的方法

本文地址:http://www.codeinn.net/misctech/192491.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有