目录

使用计数方法实现strlen函数的模拟实现

使用递归的方式去实现

使用指针的方式去模拟实现strlen


使用计数方法实现strlen函数的模拟实现

在这里有一个assert函数这是断言,防止空指针,

在指针前面加上const 为了指针不被修改

#include<assert.h>
#include<stdio.h>
//模拟实现  strlen
int my_strlen(const char* str)
{assert(str != NULL);int count = 0;//计数器while (*str)//如果*str不是'\0',那么就继续循环{str++;count++;}return count;
}

使用递归的方式去实现

找如果*str不是'\0',那么就str+1,跳过,如果最后就是'\0',那么就返回0,

因为返回类型int,就一个返回一个,加,就模拟实现了strlen

int my_strlen(const char* str)
{assert(str != NULL);if (*str)return 1 + my_strlen(str + 1);elsereturn 0;
}//递归实现

使用指针的方式去模拟实现strlen

在这里思路:使用指针减去指针的方式,指针减去指针返回的值就是俩指针之间的元素个数

int my_strlen(const char* str)
{assert(str != NULL);char* begin = str;char* end = str;while (*end){end++;}//寻找'\0'的位置return end - begin;
}//原理是指针减去指针返回中间元素的个数

看使用效果

C语言strlen函数的模拟实现相关推荐

  1. C语言 strlen 函数 - C语言零基础入门教程

    目录 一.strlen 函数简介 二.strlen 函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.strlen 函数简介 ...

  2. C语言strlen()函数用法

    C语言strlen()函数:返回字符串的长度 头文件:#include <string.h> strlen()函数用来计算字符串的长度,其原型为:unsigned int strlen ( ...

  3. 切割字符串长度php,C++_C语言中计算字符串长度与分割字符串的方法,C语言strlen()函数:返回字符串 - phpStudy...

    C语言中计算字符串长度与分割字符串的方法 C语言strlen()函数:返回字符串的长度头文件: #include strlen()函数用来计算字符串的长度,其原型为: unsigned int str ...

  4. c语言strlen函数的作用是什么,c语言strlen函数的使用方法是什么

    c语言strlen函数的使用方法是什么 发布时间:2020-08-20 11:54:33 来源:亿速云 阅读:116 作者:小新 小编给大家分享一下c语言strlen函数的使用方法是什么,希望大家阅读 ...

  5. C语言 strlen()函数

    C语言 strlen 函数用来求字符串的长度(包含多少个字符). strlen() 函数从字符串的开头位置依次向后计数,直到遇见\0,然后返回计时器的值.最终统计的字符串长度不包括\0. 头文件:st ...

  6. C语言strlen函数求字符串长度及自己实现

    strlen size_t strlen ( const char * str ); 1.字符串已经'\0'作为结束标志,strlen函数返回的是在字符串中'\0'前面出现的字符个数(不包含'\0' ...

  7. C语言strlen函数详解

    strlen函数详解 一.strlen函数简介 1.函数原型 2.注意事项 二.strlen函数模拟实现 1.计数器方式 2.递归实现 3.指针-指针实现 一.strlen函数简介 1.函数原型 si ...

  8. 【C语言 strlen函数的实现】

    strlen函数的实现 strlen函数是干什么用的 strlen函数是C语言的里的库函数,C语言中一般是计算字符串长度的 直接上代码示例: #include<stdio.h> #incl ...

  9. C语言 strlen(int),C语言 - strlen函数及int,char转换问题

    题目 intmain() { inti; chara[1000]; for(i=0;i<256;i++) a[i]=i+1; printf("len = %d\n",strl ...

最新文章

  1. 三、Bean的初始化
  2. Sql 某一字段统计
  3. Exchange 2013/2016动态通讯组成员查询
  4. mysql数据库对象关系映射
  5. 【CyberSecurityLearning 29】Linux下命令帮助、压缩、vim、软件安装
  6. selenium:使用已打开的chrome浏览器
  7. oracle 驱动表提示错误代码,oracle驱动表以及如何确定驱动表
  8. css背景图充满整个屏幕
  9. 真是蛋疼,cvet网测
  10. JS开发工具WebStorm使用快捷键
  11. 怎么查看Java的源代码
  12. 汽车零部件开发工具巨头V公司全套bootloader中UDS协议栈源代码
  13. 线与逻辑与OC门、OD门关系
  14. Android 一个adapter实现商品列表折叠
  15. 二级路由添加网络打印机的方法
  16. hdoj 2586 How far away ?
  17. livezilla账号或密码修改方法
  18. c语言编程快速收敛的圆周率计算,[原创]圆周率PI的计算(精确到几十万位)
  19. poisoned dagger
  20. 【转】写给欲采访刘丁宁事件的媒体

热门文章

  1. 基于ROS搭建简易软件框架实现ROV水下目标跟踪(二)--硬件框架简述
  2. 软件开发和测试 考点
  3. 26th.Feb.2019
  4. 4月自考,这些省已经可以查分数了!
  5. 行业唯一,Eolink 入选信通院“云上软件工程社区汽车云工作组”首批企业成员名单
  6. 呵护你上上下下的享受:国内电梯保险概览
  7. 【翻译】LearnYouSomeErlangForGreatGood(二):起始
  8. linux关闭telnet服务的命令,linux如何开启telnet服务
  9. Python列表操作中extend和append的区别
  10. 浅谈汽车软件的质量保证