字符串拷贝函数strcpy的几种实现思想方式
来源:互联网 发布:js 定时器缺点 编辑:程序博客网 时间:2024/05/21 22:51
#include <iostream> #include <assert.h>//strcpy标准实现char* CustomStrCpy1( char* Dest, const char* Src ){if( nullptr == Dest || nullptr == Src ){assert( false );return nullptr;}char* p = Dest;while( *p++=*Src++ );return Dest;}//strcpy内存实现char* CustomStrCpy2( char* Dest, const char* Src ){if( nullptr == Dest || nullptr == Src ){assert( false );return nullptr;}memcpy( Dest, Src, strlen( Src ) + 1 );return Dest;}//strcpy数组实现char* CustomStrCpy3( char* Dest, const char* Src ){if( nullptr == Dest || nullptr == Src ){assert( false );return nullptr;}const size_t SrcLen = strlen( Src );for( size_t i = 0; i <= SrcLen; ++i ){Dest[ i ] = Src[ i ];}return Dest;}//strcpy递归 char* CustomStrCpy4( char* Dest, const char* Src, int DestOffset = 0 ){if( nullptr == Dest || nullptr == Src ){assert( false );return nullptr;}*Dest = *Src;if( '\0' == *Src ){return Dest - DestOffset;}return CustomStrCpy4( Dest + 1, Src + 1, DestOffset + 1 );}int main() {//测试char Test[ 32 ];std::cout<<CustomStrCpy1( Test, "123" )<<std::endl;std::cout<<CustomStrCpy2( Test, "456" )<<std::endl;std::cout<<CustomStrCpy3( Test, "789" )<<std::endl;std::cout<<CustomStrCpy4( Test, "123" )<<std::endl;//效率的话大家可以尝试自己修改代码比对一下//不过我觉得应该是内存思想方式效率最高//其他函数如strcat的实现也都差不多return 0; }
0 0
- 字符串拷贝函数strcpy的几种实现思想方式
- strcpy函数实现的几种方式
- 实现自己的字符串拷贝函数Strcpy
- 字符串拷贝strcpy的实现
- C++实现strcpy字符串拷贝函数
- C++实现strcpy字符串拷贝函数
- strcpy字符串拷贝函数
- 字符串拷贝函数strcpy()
- 字符串拷贝函数strcpy()
- C语言实现字符串拷贝函数的几种方法
- C中字符串拷贝函数strcpy和内存拷贝函数memcpy的区别与实现
- C语言中的字符串拷贝函数strcpy和内存拷贝函数memcpy的区别与实现
- 20170912_字符串拷贝strcpy的实现
- 字符串拷贝--strcpy的代码实现
- 重新字符串拷贝函数strcpy
- 字符串拷贝函数strcpy写法
- C:strcpy字符串拷贝函数
- strcpy 字符串拷贝函数解析
- Android gps 初始化流程
- IOS 截取指定区域的图像
- 数据库中查询及删除重复记录的方法大全
- 俄罗斯方块的model需要用到的类的详细解说
- 特殊的IP地址
- 字符串拷贝函数strcpy的几种实现思想方式
- hbase分布式部署过程
- data_support/utlist(关于编译器的一些宏宏设置)
- json解析
- http://www.similarweb.com/
- 【js设计模式笔记---代理模式】
- Android 底部菜单的实现方法
- 微博转移
- JDBC连接MySQL数据库及示例