计算字符串长度_字符串长度怎么自己数「建议收藏」

计算字符串长度_字符串长度怎么自己数「建议收藏」计算字符串长度_字符串长度计算

用三种方法计算字符串的长度:

字符串:“abcd”,在储存的时候,字符串的最后一位会以一个终止符 ‘\0’,所以求取的就是终止符前的字符数。

1.计数器方式

        通过设置一个计数器,然后用指针字符串从头扫描,每扫描一个字符计数器就+1,直到 ‘\0’ 就停止计数,返回计数器的结果,

int my_strlen1(char* str)
{
	int count = 0;
	while ('\0' != *str)
	{
		count++;
		str++;
	}
	return count;
}

2.递归方法

        通过对每次获取一个字符的方式对字符串进行递归,知道获取的字符为‘\0’就停止。

int my_strlen2(char* str)
{
	if ('\0' != *str)
	{
		return (1 + my_strlen2(str + 1));
	}
	else
		return 0;
}

3.指针方法

        通过指针头*start指向字符串的首位,在设置个指针尾*end指向终止符 ‘\0’,通过end – start就可以计算出字符串的长度。

        这里因为数组是一块连续的空间,所以可以使用 end – start 并且为char类型占一个byte所以相减的数就是其存有的字符数。

int my_strlen3(char* str)
{
	char* start = str;
	char* end = str;
	while (*end != '\0')
	{
		end++;
	}
	return end - start;
}

最后整合所有代码:

//1.计数器方式
int my_strlen1(char* str)
{
	int count = 0;
	while ('\0' != *str)
	{
		count++;
		str++;
	}
	return count;
}
//2.递归方式
int my_strlen2(char* str)
{
	if ('\0' != *str)
	{
		return (1 + my_strlen2(str + 1));
	}
	else
		return 0;
}
//3.指针方法
int my_strlen3(char* str)
{
	char* start = str;
	char* end = str;
	while (*end != '\0')
	{
		end++;
	}
	return end - start;
}
int main()
{
	char arr[] = "abcd";
	int count1 = my_strlen1(arr);
	int count2 = my_strlen2(arr);
	int count3 = my_strlen3(arr);
	printf("%d\n", count1);
	printf("%d\n", count2);
	printf("%d\n", count3);
}

运行结果:

计算字符串长度_字符串长度怎么自己数「建议收藏」

 这里有两个求字符串的方法:

strlen函数:专门争对字符串长度库函数<string.h>里头的函数,使用时需要引用库函数,其原理就是计算 ‘\0’之前的字符串长度。

sizeof:内存容量度量函数,不用进行引用,但其计算的是整个数组所含的所有字符包括 ‘\0’,因此使用时 -1 就为字符串长度。

这里也有一个C语言库函数的网站:cplusplus.com

进入这个网站,可以查看库函数以及其他C语言函数的使用方法,与其定义。

今天的文章计算字符串长度_字符串长度怎么自己数「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/68825.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注