strlen()

118 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第21天,点击查看活动详情

🚩write in front🚩

🔎大家好,我是泽奀,希望你看完后。能对你有所帮助,不足请指正,共同学习交流🔎
🏅2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~阿里云专家^星级博主~掘金⇿InfoQ创作者~周榜89»总榜1512🏅
🆔本文由 謓泽 原创 CSDN首发🙉如需转载还请通知⚠
📝个人主页-掘金 (juejin.cn)💬
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​
📣系列专栏-[C系列] 从0到1 - 泽奀的专栏 - 掘金 (juejin.cn)🎓
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩

🎉前言🎉 

这篇博客我们来介绍下字符串函数的使用,可能对字符串函数的使用大多人刚开始学习会学习了一段时间只是知道几种字符串函数的使用 像 strlen()、strcpy()、strcat()、strcmp() 、这四种字符串库函数的使用。而字符串函数绝对不仅仅只有这四种库函数,实际上字符串函数可以说是"五花八门"了,在这篇博客当中我就会详细介绍字符串函数的各种使用。

在使用C语言的字符串库函数的时候记得要添加相应的头文件 #include<string.h>****

记得三连(o゚v゚)ノ

🎄strlen() - 计算字符串长度🎄

strlen() 函数的声明方式如下 👇

size_t strlen ( const char * str );

获取字符串长度。

返回 C 字符串 str 的长度。

str  要计算长度的字符串。

字符串的'\0'作为结束标志,strlen函数的返回值是在字符串中出现的字符个数(不包含'\0')

注意:函数的返回值是无符号的 unsigned 容易出错の。

Size_t→是一个无符号(unisgned int)整型类型。 

🔥→strlen的工作原理:只要给我个地址,那么strlen就可以向后数字符,至到遇到'\0'就会停止。

🎄strlen()函数代码示例🎄

使用 strlen() 函数代码示例如下 👇

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>

int main(void)
{
	char str[20] = {"44778899"};

	int len = strlen(str);
	printf("%s 的长度是 %d\n", str, len);

	return(0);
}

运行结果如下→44778899 的长度是 8
当然我们还要注意:char str[] = {'a','b','c'}; 如果是这样的话就没有'\0',那么产生的就是随机值!还是按照上面的代码进行演示。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>

int main(void)
{
	char str[] = {'a','b','c'};

	int len = strlen(str);
	printf("%s 的长度是 %d\n", str, len);

	return(0);
}

这样的运行结果就会是随机值,因为我们不知道反斜杠'\0'在哪里。 

🎄创建自定义函数实现strlen()的功能🎄

示例代码如下:👇

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>//assert的头文件
int My_strlen(const char *arr)
{
	unsigned int Count = 0;//统计字符不可能是为负数的!
        assert(arr!=NULL);//这里加入到断言就能确保我们输入字符串的时候不会是空指针
	while (*arr != '\0')
	{
		Count++;
		*arr++;
	}
	return Count;//返回计算机长度
}
int main(void)
{
	char enter[20] = { 0 };
	printf("请输入字符串->:");
	scanf("%s", &enter);
	int ret = My_strlen(enter);
	printf("The total number of input strings:%d\n",ret);
	return 0;
}

运行结果如下 👇

请输入字符串:C语言天下第一

The total number of input strings:7