首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【C语言】strlen()函数(字符串长度计算函数)

目录 一.strlen函数简介 我们先来看看cplusplus网站对strlen函数的介绍: 下面是中文翻译: 也即,当你向strlen函数传递一个字符串名作为其参数时,strlen函数会返回字符串的长度...需要注意的是: 1.使用strlen函数需要包含头文件 2.使用strlen函数计算出的字符串长度是字符串开头字符到终止空字符(也即'\0')之间的字符数。...(有关第二点在本文的第二部分会进行实操案例演示) 二.strlen函数的使用 当我们已经了解了关于strlen函数的基本内容时,就可以试着使用strlen函数求字符串长度了,下面在vs2022环境中为大家演示一下...strlen(arr)); return 0; } 上述代码就是一个简单的使用strlen函数求字符串长度的案例,同时我们并没有定义数组的大小,放在编译器中的调试结果为5。...%d\n",strlen(arr)); return 0; } 运行结果如下,同样为5: 由以上两个例子可见使用strlen函数求字符串长度的结果与字符串的定义大小无关。

8510

strlen】三种方法模拟实现strlen字符串函数

奇妙的字符串之旅 文章目录 模拟实现“求有效字符长度”的函数my_strlen 方法一:计数器法 方法二:函数递归法 方法三:指针相减法 模拟实现...“求有效字符长度”的函数my_strlen 由于主函数都一样,现统一给出 int main() { char arr[]="abcde";//5个可见(有效)字符 int len=my_strlen...(arr);//len接收返回值 printf("%d\n",len); return 0; } 方法一:计数器法 int my_strlen(const char*str) { int count=...int my_strlen(const char* str) { if(*str) { return 1+my_strlen(str+1); } else { return...举一个例子验证: 但是这个问题可以优化到正确的答案:只用在return 返回值处再减去1 备注:我的博客中还有其他字符串函数的相关模拟实现,快来围观吧!

31920

模拟字符串常见函数(1) strlen函数

本文将解析常见字符串函数的用法,并通过模拟实现来加深对于它们的理解,以便更好、更灵活的使用它们。...strlen函数 size_t strlen( const char* str) strlen函数的用法是返回在字符串中‘\0'前面出现的字符个数(不包含\0),看函数格式可以知道,它返回的是size_t...通过这个函数可以轻松的知道字符串里的字符个数,下面来模拟实现它。...方法3 递归法 通过递归也能统计它们的字符个数,首先我们要明白,遍历整个字符串时,当它遇到\0就会停止,这就是递归函数的出口,这里str是字符串名,指向的是字符串的首地址,那么每次递归时,我们都让它加1...代码实现 模拟实现strlen 方法1 计数器 int my_strlen(char * str) { int count = 0; int i = 0; while (str[i]) {

8810

c语言strlen函数的模拟实现

1.strlen函数介绍 strlen的功能: 函数返回字符串str 的长度( 即空值结束符之前字符数目)。...(str) 的结果多一 这是因为strlen()函数不统计’\0’ ,而sizeof统计’\0’ (因为统计的是整个数组的大小) 在监视窗口里我们也可以证实‘\0’的存在: 下面是strlen()...函数的官方解释: 2.strlen()函数的模拟实现 (1)循环计数法 我们在了解了strlen()函数的功能后,很容易想到利用 指针传递字符串地址,然后判断是否 == ‘\0’的操作来进行计数,代码如下...: #define _CRT_SECURE_NO_WARNINGS #include #include #include //strlen函数的模拟...函数的模拟 //字符串的长度等于字符串开始和结束空字符之间的字符数(不包括结束空字符本身)。

7110

从0开始:模仿malloc和 free函数strlen函数

程序一:编写函数char *alloc(n) 和 void afree(char *p)函数,这两个函数类似于malloc和free函数,其中第一个函数返回一个指向n个连续存储单元的指针,第二个函数释放已经分配单元的指针...该数组是alloc和afree两个函数的私有数组。...由于函数alloc和afree处理的对象时指针而不是数组下标,因此,其他函数无需知道该数组的名字,这样,可以在包含alloc和afree的源文件中对该数组声明为static类型,使得它不对外可见。...return 0; } void afree(char *p) { if (p>=allocbuf && p<allocbuf+ALLOCSIZE) allocp = p; } 程序二:strlen...函数 int strlen(char *s) { char *p = s; while (*p++); return p - s - 1; } 发布者:全栈程序员栈长,转载请注明出处:https

21810

三种方法实现strlen函数

在我们使用C语言写代码时,我们常常会用到strlen函数,你是否好奇过strlen是如何实现的呢?接下来,我将会使用3种方法实现strlen函数。...为了防止字符串被改变,于是使用const来保护字符串,增加代码的健壮性 2.使用assert断言是为了防止传过来的是空指针 2.递归法 递归法的主要思想就是要判断第一字符是不是\0,如果不是就1+下一次函数实现...//递归实现strlen #include int my_strlen(char*str) { if ((*str) !...要使用指针相减,就要找到字符串的初末指针,只可以通过寻找\0来实现 //用指针减指针来实现strlen的功能 #include int my_strlen(char* str)//str...("abc"); printf("%d", len); return 0; } 以上就是strlen的3种实现方法,一个我们平时习以为常的库函数却有3种实现方,完全不一样的实现逻辑,这或许就编程的乐趣吧

42620

模拟实现strlen函数的三种方法

本文介绍:模拟实现strlen函数的三种方法(指针相减,计数器,递归) 自我介绍:一个脑子不好的大一学生,c语言接触还没到半年,若涉及到效率等问题,各位都可以在评论区提出见解,谢谢啦。...文章特点:会将重要步骤和易错点在代码中用注释标示(方便各位理解和定位) 重点: 模拟函数思路:返回类型,参数类型都应与原类型类似或相等 由图片可知,strlen的返回类型为size_t(注:unsigned...模拟函数的返回类型也为size_t,参数类型也为const char*,我们构造函数的思路不就出来了吗?...法一:计数器 #include //断言函数头文件 /**/ size_t my_strlen1(const char * str) { //size_t:模拟strlen函数...(*str)) return 0; return 1+my_strlen3(str+1); } 加餐:由于strlen的返回类型是size_t,你们可以试试输入下列代码看看是否它的答案和你想的一样哦

7110
领券