strlen和strcpy函数的三种实现
1.计数器实现strlen函数的模拟
#include <stdio.h>
#include <assert.h>
int my_strlen(const char*str)//返回类型如果是size_t,则计算范围能大很多
{assert(str);int count = 0;while (*str++){count++;}return count;
}
int main()
{char arr[] = { "abcdef" };int ret = my_strlen(arr);printf("%d\n", ret);return 0;
}
2.递归实现strlen函数
#include <stdio.h>
#include <assert.h>
int my_strlen(const char*str)
{assert(str);if (*str == 0)return 0;elsereturn 1 + my_strlen(str+1);
}
int main()
{char arr[] = { "abcdef" };int ret = my_strlen(arr);printf("%d\n", ret);return 0;return 0;
}
3.指针形式
#include <stdio.h>
#include <assert.h>
int my_strlen(const char*str)
{assert(str);char*p = str;//将str的首地址放到p指针中while (*str!='\0'){str++;}return str - p;
}
int main()
{char arr[] = { "abcdef" };int ret = my_strlen(arr);printf("%d\n", ret);return 0;
}
4.strcpy复制字符串
#include <stdio.h>
#include <assert.h>
char* my_strcpy(char*dest, const char*stc)
{assert(dest&&stc);char*ret = dest;while (*dest++ = *stc++){;}return ret;
}
int main()
{//strcpy=string copy;char arr1[] = "abcdef";char arr2[] = { 0 };my_strcpy(arr2, arr1);printf("%s\n", arr2);return 0;
}
strlen和strcpy函数的三种实现相关推荐
- 【C语言】详解strlen函数 | 模拟实现strlen函数的三种方法 | 写库函数的人是如何实现这个函数的
前言: 本篇将专门为 strlen 函数进行讲解,总结了模拟实现 strlen 函数的三种方法,并对其进行详细的解析.手写库函数是非常常见的题目,希望通过本篇博客能够加深大家对 strlen 的理解. ...
- c语言函数的三种调用方式是什么?
函数的三种调用方式:1.函数作为表达式中的一项出现在表达式中,例"z=max(x,y)":2.函数作为一个单独的语句,例"printf("%d",a) ...
- java光标移动函数_文件内光标的移动 函数基础 定义函数的三种形式 函数的返回值 调用方式...
# with open(r'a.txt', 'r', encoding='utf-8')as f: # data1=f.read() # print('>1>:',data1) # pri ...
- C++函数的三种传递方式
C++函数的三种传递方式为:值传递.指针传递和引用传递 值传递: void fun(int x){x += 5; //修改的只是y在栈中copy x,x只是y的一个副本,在内存中重新开辟的一块临时空间 ...
- 函数参数三种传递方式的区别
函数参数三种传递方式的区别 问题提出: 1.当一个类的对象作为实参数传递时,使用值传递和引用传递有什么区别? 比如: DateType ExampleFun(CString &strFileN ...
- 函数参数传递三种方式(传值方式,地址传递,引用传递)
函数参数传递三种方式(传值方式,地址传递,引用传递) 形参与实参 形参即形式上的参数,对实参的一种抽象类型描述只是声明一个函数能够接受什么类型的实参,而不确定接受的实参的具体内容是什么 实参即传递给函 ...
- JavaScript高级第2天:定义函数的三种方式、函数的原型链结构、完整原型链、作用域以及作用域链、函数的四种调用模式、闭包、计数器、斐波那契数列优化、三种继承方式
JavaScript高级第二天 01-定义函数的三种方式 1.函数声明 function:可以先调用再声明,因为预解析(把函数声明.变量声明进行提升) function fn() {//函数体conl ...
- c语言函数三种方式,c语言函数的三种调用方式是什么
函数的三种调用方式:1.函数作为表达式中的一项出现在表达式中,例"z=max(x,y)":2.函数作为一个单独的语句,例"printf("%d",a) ...
- javascript函数的三种写法
在JS中函数的三种写法 [0401] 在js中函数有三种写法,这里我简单列举一下. 第一种: 第二种: 第三种: 对于以上三种函数的调用方法,这里可以简单的理解一下,第一种是最常见的函数写法,第三种是 ...
最新文章
- java中的this什么作用
- asp.net 路径(转)
- 医院计算机操作权限管理制度,附五医院网络工作站管理制度
- LintCode: 3 Sum
- 抓取html中用到的css_如何使用HTML和CSS制作像《星球大战》一样的抓取文字
- 小程序开发(10)-之热力图解决方案、手绘图
- pythonsocket中tcp通信接收不到数据_TCP 为什么三次握手而不是两次握手(正解版)...
- 通过Ollydbg定位私有协议通信明文
- 函数、数组和指针的形参
- idea将项目打包(jar包/war包)
- windows下python 自动截图功能
- 前端面试题2021(超详细)
- 如果你用GitHub,可以这样提高效率
- java普通工程打war包_Java项目打war包的方法
- 操作系统---处理器调度
- 小程序顶部自定义标题栏高度自适应
- Xmind 2022 Mac版 思维导图软件
- 印象笔记无法连接服务器解决办法
- python怎么念1001python怎么念-python 星号的使用
- vbs整人简单实现大量弹窗+指定语句退出!
热门文章
- 在csv文件中提取特定的数据做图-以天气为例子
- r语言boxcox异方差_R语言异方差回归模型建模:用误差方差解释异方差
- 腾讯回应 CDC 部门解散:不涉及人员优化;苹果 iCloud+ 在全球多地宣布涨价 ;Wasmer 4.0 发布|极客头条
- CANoe:入门介绍
- 问题 P: C语言实验 - 一元二次方程 II
- 【无需代码】利用Vuforia for Unity实现简单的AR功能
- 工厂模式(简单工厂模式、工厂方法模式优缺点,使用场景)
- 写一个可以夸人的小程序
- Ubuntu16.04 kdevelop
- 烂泥:域中的打印机无法打印……