C语言模拟实现标准库函数之strlen()
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()相关推荐
- C语言模拟实现标准库函数之qsort() 2
C语言模拟实现标准库函数之qsort() <1> https://blog.csdn.net/csdn_kou/article/details/80158194 排序数字 int int_ ...
- C语言模拟实现标准库函数之strcpy()
strcpy(dest,src) strcpy是一种C语言的标准库函数,strcpy把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间,返回值的类型为char*. char ...
- C语言模拟实现标准库函数之qsort()
qsort 编译器函数库自带的快速排序函数. void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void* ...
- C语言模拟实现标准库函数之memcpy()
memcpy() 1.如果我们需要对一个数组初始化,把数组的内容全部置0,那么能不能用strcpy() int main() {char arr1[10] = { 0 };char arr2[10] ...
- C语言模拟实现标准库函数之strcmp()
strcmp() C/C++函数,比较两个字符串 设这两个字符串为str1,str2, 若str1==str2,则返回零: 若str1<str2,则返回负数: 若str1>str2,则返回 ...
- C语言模拟实现标准库函数之strchr()
strchr() 查找字符串s中首次出现字符c的位置 char * my_strchr(char *str1, char str2) {while (*str1 != str2 && ...
- C语言模拟实现标准库函数之strstr()
strstr() strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串.如果是,则该函数返回str2在str1中首次出现的地址:否则,返回NULL. char* my_s ...
- C语言模拟实现标准库函数之strcat()
strcat() strcat用于将两个char类型链接的函数. char * my_strcat(char *str1, char *str2) {assert(str2);assert(str1) ...
- C语言字符串标准库函数
C语言字符串相关标准库函数 字符串操作 字符串操作<string.h> size_t strlen(char const* s); 注意:返回值类型size_t是无符号类型,和int进行运 ...
最新文章
- 小程序获取用户所在城市完整代码
- Lubuntu下小巧好用的Python编辑工具Geany
- linux使用grep数字个数,51CTO博客-专业IT技术博客创作平台-技术成就梦想
- findfirstfile函数为什么不能遍历doc_编程之美:IO多路复用——记性不好的poll函数...
- 别双击闪存盘 惊醒病毒就不得了
- 【转】SQL SERVER2005版本介绍
- 服务器内存太小,伤不起![异常与应用程序池引发的连锁命案]
- 电脑桌面便签小工具下载,好用的桌面便签软件推荐
- C++程序解线性一次方程组
- NTT科学家武居博士:用光去开拓和改变世界
- matlab的from模块_Matlab中SIMULINK的模块库以及比较常用的模块
- 阿泰,水晶报表--push样式模板
- linux目录和文件
- 中华好诗词大学季第二季(四)
- win10 UWP 你写我读
- 后端常用数据库的使用MongoDB, Redis, Mysql
- P1914 小书童——凯撒密码(python实现)
- python3网络请求_使用Python3和请求发送XMLHttpRequest并获取响应
- 利用Java实现对云台和镜头的远程控制
- 笔记本计算机充不上电,笔记本电池充不进电,详细教您笔记本电池充不进电如何解决...
热门文章
- fatal error C1083: 无法打开预编译头文件:“Debug\a.pch”:No such file or directory
- BizTalk开发系列(十二) Schema设计之Group与Order
- 【RTOS】基于V7开发板的uCOS-III,uCOS-II,RTX4,RTX5,FreeRTOS原版和带CMSIS-RTOS V2封装层版全部集齐...
- ajax请求导致status为canceled的原因
- 如何调整自定义标签样式
- Daily Scrum 11.18
- 用php打出前一天的时间格式,[php]用PHP打印出前一天的时间格式
- php中mysqlstat函数,PHP函数mysql_stat介绍
- echart实例数据 本地加载_JVM 类加载概述
- linux db2sysc 内存,db2sysc进程占用linux内存持续增长,请各位指点。