字符串复制
2015-08-12 07:47
429 查看
要求:编写一个函数,实现类似strcpy的字符串复制函数。原型定义为 char * mystrcpy(char *dest, char *src)。功能是把src所指向的字符串复制到dest所指的数组中,返回dest指针。(提示:src和dest所指向的区域有可能重叠)。
简单版本:
上述情况没有考虑内存区域重叠的问题,也没有对输入参数进行合法性检测。修改后的版本为:
简单版本:
char * mystrcpy(char *dest, char *src) { char *p = dest; while(*src != '\0'){ *dest++ = *src++; } return p; }存储空间分析:
上述情况没有考虑内存区域重叠的问题,也没有对输入参数进行合法性检测。修改后的版本为:
char * mystrcpy(char *dest, char *src) { char *d = dest;//输入参数备份 char *s = src; int count = 0; assert(dest);//指针合法性检测 assert(src); if(src == dest){ return src; } count = strlen(src) + 1; if(count<=1){ return 0; } if(dest < src || dest >= (src + count)){ while(count--){ *d++ = *s++; } } else{ d = dest + count; s = src + count; while(count--){ *d-- =*s--; } } return dest; }
相关文章推荐
- 如何利用lib进行分类
- PHP 单例模式解析和实战
- C语言的数组
- 【冬瓜哥手绘】并发IO—系统性能的根本!
- 内存中OLTP(Hekaton)里的事务日志记录
- 类的指针和引用
- 非线性转化为线性规划的方法
- 关于敏捷开发的26个心得
- 作用域
- 有了 Linux,你就可以搭建自己的超级计算机
- 用户控件和自定义控件编
- ipmi使用
- sql生成器(含注释)问题修复版
- cocoapods install
- LAMP环境yum安装
- HUNAN OJ 11567 Escaping
- 2 - Add Two Numbers
- linux redhat-6.5系统配置nfs服务器的方法
- 【高德地图API】如何解决坐标转换,坐标偏移?
- 【转】TalkingData灵动分析-开启无码分析新纪元