strlen()

strlen所作的仅仅是一个计数器的工作,它从内存的某个位置
(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)
开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。

注:

为方便阅读 头文件和主函数都在文章开头给与,后面只写函数内容,方便读者阅读

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>int main()
{char arr[] = "asdfdsaf";printf("%d", my_strlen(arr));system("pause");return 0;
}

方法1:计数器法实现strlen()

int my_strlen(char *arr)
{int count = 0;while (*arr != 0){arr++;count++;}return count;}

方法2:递归法实现strlen()

int my_strlen(char *arr)
{if (*arr == 0){return 0;}else{return 1 + my_strlen(arr + 1);}
}

方法3:指针的减法实现strlen()

int my_strlen(char *arr)
{char * str1 = arr;while (*arr != 0)arr++;return arr - str1;
}

C语言模拟实现标准库函数之strlen()相关推荐

  1. C语言模拟实现标准库函数之qsort() 2

    C语言模拟实现标准库函数之qsort() <1> https://blog.csdn.net/csdn_kou/article/details/80158194 排序数字 int int_ ...

  2. C语言模拟实现标准库函数之strcpy()

    strcpy(dest,src) strcpy是一种C语言的标准库函数,strcpy把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间,返回值的类型为char*. char ...

  3. C语言模拟实现标准库函数之qsort()

    qsort 编译器函数库自带的快速排序函数. void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void* ...

  4. C语言模拟实现标准库函数之memcpy()

    memcpy() 1.如果我们需要对一个数组初始化,把数组的内容全部置0,那么能不能用strcpy() int main() {char arr1[10] = { 0 };char arr2[10] ...

  5. C语言模拟实现标准库函数之strcmp()

    strcmp() C/C++函数,比较两个字符串 设这两个字符串为str1,str2, 若str1==str2,则返回零: 若str1<str2,则返回负数: 若str1>str2,则返回 ...

  6. C语言模拟实现标准库函数之strchr()

    strchr() 查找字符串s中首次出现字符c的位置 char * my_strchr(char *str1, char str2) {while (*str1 != str2 && ...

  7. C语言模拟实现标准库函数之strstr()

    strstr() strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串.如果是,则该函数返回str2在str1中首次出现的地址:否则,返回NULL. char* my_s ...

  8. C语言模拟实现标准库函数之strcat()

    strcat() strcat用于将两个char类型链接的函数. char * my_strcat(char *str1, char *str2) {assert(str2);assert(str1) ...

  9. C语言字符串标准库函数

    C语言字符串相关标准库函数 字符串操作 字符串操作<string.h> size_t strlen(char const* s); 注意:返回值类型size_t是无符号类型,和int进行运 ...

最新文章

  1. 小程序获取用户所在城市完整代码
  2. Lubuntu下小巧好用的Python编辑工具Geany
  3. linux使用grep数字个数,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  4. findfirstfile函数为什么不能遍历doc_编程之美:IO多路复用——记性不好的poll函数...
  5. 别双击闪存盘 惊醒病毒就不得了
  6. 【转】SQL SERVER2005版本介绍
  7. 服务器内存太小,伤不起![异常与应用程序池引发的连锁命案]
  8. 电脑桌面便签小工具下载,好用的桌面便签软件推荐
  9. C++程序解线性一次方程组
  10. NTT科学家武居博士:用光去开拓和改变世界
  11. matlab的from模块_Matlab中SIMULINK的模块库以及比较常用的模块
  12. 阿泰,水晶报表--push样式模板
  13. linux目录和文件
  14. 中华好诗词大学季第二季(四)
  15. win10 UWP 你写我读
  16. 后端常用数据库的使用MongoDB, Redis, Mysql
  17. P1914 小书童——凯撒密码(python实现)
  18. python3网络请求_使用Python3和请求发送XMLHttpRequest并获取响应
  19. 利用Java实现对云台和镜头的远程控制
  20. 笔记本计算机充不上电,笔记本电池充不进电,详细教您笔记本电池充不进电如何解决...

热门文章

  1. fatal error C1083: 无法打开预编译头文件:“Debug\a.pch”:No such file or directory
  2. BizTalk开发系列(十二) Schema设计之Group与Order
  3. 【RTOS】基于V7开发板的uCOS-III,uCOS-II,RTX4,RTX5,FreeRTOS原版和带CMSIS-RTOS V2封装层版全部集齐...
  4. ajax请求导致status为canceled的原因
  5. 如何调整自定义标签样式
  6. Daily Scrum 11.18
  7. 用php打出前一天的时间格式,[php]用PHP打印出前一天的时间格式
  8. php中mysqlstat函数,PHP函数mysql_stat介绍
  9. echart实例数据 本地加载_JVM 类加载概述
  10. linux db2sysc 内存,db2sysc进程占用linux内存持续增长,请各位指点。