广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言怎么模拟实现strlen函数
  • 302
分享到

C语言怎么模拟实现strlen函数

2023-06-29 23:06:05 302人浏览 泡泡鱼
摘要

这篇文章主要讲解了“C语言怎么模拟实现strlen函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言怎么模拟实现strlen函数”吧!一.strlen函数的介绍1.strlen函数的声

这篇文章主要讲解了“C语言怎么模拟实现strlen函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言怎么模拟实现strlen函数”吧!

一.strlen函数的介绍

1.strlen函数的声明

size_t strlen ( const char * str );

这里函数的返回值为无符号整形(size_t),传入的是一个常量char*类型的指针。

2.strlen函数的简单运用

用strlen函数可以求出字符串的长度

#include<stdio.h>#include<string.h>int main(){char str[] = "qwerty";int ret = strlen(str);printf("字符串的长度 = %d\n", ret);return 0;}

代码运行结果

C语言怎么模拟实现strlen函数

3.注意事项

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

参数指向的字符串必须要以 '\0' 结束。

如果不是以'\0'结束,输出结果将是一个随机值,例如:

#include<stdio.h>#include<string.h> int main(){char str[] = { 'a', 'b', 'c' };//这里没有以'\0'结束int ret = strlen(str);printf("字符串的长度 = %d\n", ret);return 0;}

代码运行结果

C语言怎么模拟实现strlen函数

 其实这个代码的修改方法也很简单,例如:

方法1

#include<stdio.h>#include<string.h> int main(){char str[] = { 'a', 'b', 'c', '\0'};int ret = strlen(str);printf("字符串的长度 = %d\n", ret);return 0;}

方法2(如果一个数组没存满的话后面的值默认存0,而'\0'的ASCII码值就是0)

#include<stdio.h>#include<string.h> int main(){char str[5] = { 'a', 'b', 'c'};int ret = strlen(str);printf("字符串的长度 = %d\n", ret);return 0;}

代码运行结果

C语言怎么模拟实现strlen函数

注意函数的返回值为size_t,是无符号的整形( 易错 )

#include<stdio.h>#include<string.h> int main(){if (strlen("abc") - strlen("abcdefg") > 0){printf(">\n");}else{printf("<=\n");}return 0;}

运行结果

C语言怎么模拟实现strlen函数

出现这个>符号的结果的原因就在于函数的返回值为size_t,是无符号的整形,两个无符号整形的数字相减得到的还是一个无符号整形,虽然这两个字符串长度相减得到的是-3,但是编译器会把他当成无符号的整形,把-3当成无符号整形将会是一个很大的正整数,所以输出的结果是>符号。(这是一个易错点)

二.三种实现strlen函数的方法

三个方法的共同点:

都要用const修饰指针,因为传址进来后只需要判断这字符串的长度,并不需要修改字符串的值,所以要用const修饰,这样使其更安全

都要用assert断言,断言传来的指针不能为空指针,因为空指针是不能被访问的。

1.计数器的方法

这是最普通的方法,创建一个计数器变量,然后就开始找'\0',每经过一个字符,计数器就+1,直到找到'\0'为止。最后将计数器的值返回。

#include<stdio.h>#include<assert.h> size_t my_strlen(const char* str){assert(str != NULL);//判断传入的指针是否为空指针int count = 0;//创建一个计数器变量,记录字符串的长度while (*str) //当找到'\0'的时候循环结束{                                                                                                                                                                                                                                                                                                                                                                              count++;//记录字符串的长度str++;}return count;}int main(){char str[] = "qwerty";int ret = my_strlen(str);printf("%d", ret);return 0;}

2.递归方法

一时递归一时爽,一直递归一直爽。(讲解全在注释里面,嘻嘻)

#include<stdio.h>#include<assert.h> size_t my_strlen(const char* str){assert(str != NULL);//判断传入的指针是否为空指针if (*str)//一直递归,直到找到'\0'为止{str++;return (1 + my_strlen(str));//递归,并返回1+记录字符串长度}return 0;}int main(){char str[] = "qwerty";int ret = my_strlen(str);printf("%d", ret);return 0;}

3.指针-指针的方法

我们都知道指针-指针的结果是他们之间元素的个数(因为这个我在指针初阶篇将过,嘻嘻),这个方法就是利用这个原理来写的。所以我们只用找到字符串首字符的地址和'\0'的地址,然后相减就可以得到字符串的长度了。

#include<stdio.h>#include<assert.h> size_t my_strlen(const char* str){assert(str != NULL);//判断传入的指针是否为空指针const char* start = str;//创建一个存储首字符地址的指针,注意也要用const修饰,保持类型一致while (*str)//找'\0'的地址{str++;}return (str - start);//指针('\0'的地址) - 指针(首字符的地址) = 中间字符的个数}int main(){char str[] = "qwerty";int ret = my_strlen(str);printf("字符串的长度 = %d\n", ret);return 0;}

三种方法的运行结果都是一样的

C语言怎么模拟实现strlen函数

感谢各位的阅读,以上就是“C语言怎么模拟实现strlen函数”的内容了,经过本文的学习后,相信大家对C语言怎么模拟实现strlen函数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: C语言怎么模拟实现strlen函数

本文链接: https://www.lsjlt.com/news/326662.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言怎么模拟实现strlen函数
    这篇文章主要讲解了“C语言怎么模拟实现strlen函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言怎么模拟实现strlen函数”吧!一.strlen函数的介绍1.strlen函数的声...
    99+
    2023-06-29
  • C语言 模拟实现strlen函数详解
    目录前言一.strlen函数的介绍1.strlen函数的声明2.strlen函数的简单运用3.注意事项二.三种实现strlen函数的方法1.计数器的方法2.递归方法3.指针-指针的方...
    99+
    2022-11-13
  • C语言strlen函数怎么使用
    C语言中的strlen函数用于获取一个字符串的长度,其原型如下:```csize_t strlen(const char* str)...
    99+
    2023-08-12
    C语言 strlen
  • C语言中的strlen函数怎么使用
    今天小编给大家分享一下C语言中的strlen函数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。C语言中的字符串函数有...
    99+
    2023-06-16
  • C语言模拟实现库函数详解
    目录前言1.字符串函数1.1字符串控制函数1.1.1 strlen的模拟1.1.2 str(n)cpy的模拟1.1.3 str(n)cmp的模拟1.1.4 str(n)cat的模拟1...
    99+
    2022-11-13
  • 怎么用C语言strlen函数实现读取字符串长度
    今天小编给大家分享一下怎么用C语言strlen函数实现读取字符串长度的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、函数s...
    99+
    2023-06-30
  • c语言strlen函数的用法是什么
    strlen函数用来计算字符串的长度,不包括字符串末尾的空字符('\0')。其用法如下:```c#include size_t st...
    99+
    2023-09-14
    c语言
  • C语言模拟实现strstr函数的代码怎么写
    这篇文章主要介绍了C语言模拟实现strstr函数的代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言模拟实现strstr函数的代码怎么写文章都会有所收获,下面我们一起来看看吧。strstr函数介绍C...
    99+
    2023-07-02
  • C语言编程之三个方法实现strlen函数
    strlen()函数是来源于库函数<string.h> 是用于计算字符串的长度, 且字符串需要以'\0'结尾 strlen()会计算'\0'前的字符个数。 根据MSDN的...
    99+
    2022-11-12
  • C语言中atoi函数模拟实现详析
    目录一、atoi函数是什么?二、atoi函数模拟实现总结一、atoi函数是什么? int atoi ( const char * str ); 功能:将字符串转换为整数。 解析C字...
    99+
    2022-11-13
    C语言atoi函数 c语言atoi函数模拟实现 c语言atoi函数用法
  • c语言中strlen函数的作用是什么
    strlen函数用于计算一个字符串的长度,即字符串中字符的个数(不包括字符串末尾的空字符'0')。它是C语言中的标准库函数,需要包含...
    99+
    2023-10-18
    c语言
  • C语言三个函数的模拟实现详解
    目录一、strcpy二、模拟实现strcat三、strcmp总结:一、strcpy //模拟实现strcpy #include<stdio.h> #include<...
    99+
    2022-11-13
  • C语言模拟实现strcpy与strcat函数详解
    目录一、strcpy函数的介绍1.函数的声明2.函数功能与注意事项3.函数的使用二、模拟实现strcpy函数1.模拟分析2.模拟实现三、strcat函数的介绍1.函数的声明2.函数功...
    99+
    2022-11-13
  • C语言 模拟实现memcpy与memmove函数详解
    目录一、memcpy函数的介绍1.函数的声明2.函数功能与注意事项3.函数的使用二、模拟实现memcpy函数1.模拟分析2.模拟实现三、memmove函数的介绍1.函数的声明2.为什...
    99+
    2022-11-13
  • C语言strlen,strcpy,strcmp,strcat,strstr字符串操作函数实现
    目录strlenstrcpystrcmpstrcatstrstr前言: 今天来实现strlen、strcpy、strcmp、strcat、strstr三个比较常见的字符串操作函数,具...
    99+
    2022-11-13
  • C语言strlen函数实现读取字符串长度详解
    目录前言1、函数strlen2、使用指针3、指针改进4、使用递归5、my_strlen函数的参数改进—常量指针总结前言 读取字符串的长度,使用函数 strlen。这里我们...
    99+
    2022-11-13
  • 利用C语言模拟实现qsort,strcpy,strcat,strcmp函数
    目录1.采用冒泡的方式模拟实现qsort2.模拟实现strcpy函数规定3.模拟实现strcat函数规定4.模拟实现strcmp函数规定1.采用冒泡的方式模拟实现qsort 简述回调...
    99+
    2022-11-13
    C语言 qsort strcpy strcat strcmp C语言 qsort C语言 strcpy C语言 strcat C语言 strcmp
  • C语言模拟实现strstr函数的示例代码
    目录strstr函数介绍BF算法介绍BF算法模拟实现strstr函数KMP算法介绍KMP算法模拟实现strstr函数strstr函数介绍 C语言提供了字符串匹配函数 strstr 函...
    99+
    2022-11-13
  • C语言详细讲解strcpystrcatstrcmp函数的模拟实现
    目录一、模拟实现strcpy函数二、模拟实现strcat函数三、模拟实现strcmp函数四、小结一、模拟实现strcpy函数 strcpy函数是字符串拷贝函数,就是将源字符串拷贝到目...
    99+
    2022-11-13
  • C语言内存函数的使用及其模拟实现
    目录前言memcpymemcmpmemmovememset总结前言 在C语言中,我们除了会经常用到与字符相关的函数,我们还会使用到与内存相关的库函数。今天我们就来学习几个常见的内存函...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作