欢迎来到代码驿站!

C代码

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

C语言strlen函数实现读取字符串长度详解

时间:2023-03-08 12:02:21|栏目:C代码|点击:

前言

读取字符串的长度,使用函数 strlen。这里我们写一个函数,来读取字符串的长度,本文内容主要包括:

  • 使用strlen
  • 使用指针:是常规的方法,但是要创建变量
  • 指针改进:不需要创建变量,要求高,不易掌握
  • 使用递归:不需要创建变量,要求高,不易掌握
  • 介绍常量指针—— const char* str

1、函数strlen

int main()
{
	char arr[] = "abcd";
	int len = strlen(arr);
	printf("%d\n", len);
	return 0;
}

2、使用指针

字符串以字符 ‘\0’ 结尾,需要创建变量

int my_strlen(char* str)
{
	int count = 0;//统计字符的个数,需要创建变量
	while (*str != '\0')
	{
		count++;
		str++;
	}
	return count;
}
int main()
{
	char arr[] = "abcd";
	//char* str = arr;
	int len = my_strlen(arr);
	printf("%d\n", len);
	return 0;
}

3、指针改进

使用指针,不创建变量,不需要创建变量,面试题级别,要求高,不易掌握

int my_strlen(char* str)
{
	char* p = str;//记录首元素地址的位置
	while (*p != '\0')
	{
		p++;
	}
	return p - str;//尾地址-首地址,就是字符串的长度
}

4、使用递归

递归函数,不需要创建变量,以大化小,进行分解,面试题级别,要求高,不易掌握

my_strlen("abcdef")
1+my_strlen("bcdef")
1+1+my_strlen("cdef")
1+1+1+ my_strlen("def")
1+1+1+1+ my_strlen("ef")
1 + 1 + 1 + 1 +1+my_strlen("f")
1 + 1 + 1 + 1 + 1 + 1+ my_strlen("")
1 + 1 + 1 + 1 + 1 + 1 + 0 = 6

int my_strlen(char* str)
{//不需要创建变量
	if (*str != '\0')
		return 1 + my_strlen(str+1);//递归
	else
		return 0;
}

5、my_strlen函数的参数改进—常量指针

定义常量指针,const 对 *str 的内容进行限制,字符串的内容在传参时不会发生改变,将上面的自定义函数,都换成下面的代码:

int my_strlen(const char* str)//常量指针
{
}

总结

写一个函数,来读取字符串的长度,推荐掌握指针的写法。如果后面还有别的函数的写法,再进行更新。

上一篇:详解C++11中的线程库

栏    目:C代码

下一篇:详解C语言之操作符

本文标题:C语言strlen函数实现读取字符串长度详解

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

推荐教程

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

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

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

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

Copyright © 2020 代码驿站 版权所有