功能要求:把src 所指由NULL 结束的字符串复制到dest 所指的数组中。
分析:如果编写一个标准strcpy 函数的总分值为10,下面给出几个不同得分的答案:

//得2 分
void strcpy( char strDest, char strSrc )
{
while( (strDest++ = strSrc++) != '/0' );
}

//得4 分
void strcpy( char strDest, const char strSrc )
{
//将源字符串加const,表明其为输入参数,加2 分
while( (strDest++ = strSrc++) != '/0' );
}

//得7 分
void strcpy(char strDest, const char strSrc)
{
//对源地址和目的地址加非0 断言,加3 分
assert( (strDest != NULL) && (strSrc != NULL) );
while( (strDest++ = strSrc++) != '/0' );
}

//得9 分
//为了实现链式操作,将目的地址返回,加2 分!
char * strcpy( char strDest, const char strSrc )
{
assert( (strDest != NULL) && (strSrc != NULL) );
char address = strDest;
while( (
strDest++ = * strSrc++) != '/0' );
return address;
}

//得10 分,基本上所有的情况,都考虑到了
//如果有考虑到源目所指区域有重叠的情况,加1 分!
char * strcpy( char strDest, const char strSrc )
{
if(strDest == strSrc) { return strDest; }
assert( (strDest != NULL) && (strSrc != NULL) );
char address = strDest;
while( (
strDest++ = * strSrc++) != '/0' );
return address;
}

转载于:https://www.cnblogs.com/nolonely/p/4750172.html

算法----字符串拷贝相关推荐

  1. linux c strdup 字符串拷贝

    #include <string.h> char *strdup(const char *s); 函数介绍: strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函 ...

  2. linux strcpy 用法,由Linux中管道的buffer,浅谈C语言中char类型字符串拷贝使用strcpy()和=赋值符号的区别...

    今天在写父子进程用两个单向管道通信时,出现了错误: Segmentation fault (core dumped) 打开core文件发现: 附上源码: 1 #include 2 #include 3 ...

  3. 字符串拷贝函数memcpy()、strncpy()和snprintf()性能之比较

    问题: 函数memcpy(dest, src, sizeof(dest)).strncpy(dest, src, sizeof(dest))和snprintf(dest, sizeof(dest), ...

  4. 【C 语言】字符串拷贝 ( 函数形参使用推荐方法 | 凡是涉及 修改指针指向 的操作一律创建新的 指针变量 执行 | 引入 辅助 局部 指针变量 )

    文章目录 一.函数形参使用推荐方法 二.完整代码示例 一.函数形参使用推荐方法 在函数中 , 形参 中的 指针变量 , 不建议直接使用 ; 推荐 在 函数中 , 定义 局部 指针变量 , 接收 形参中 ...

  5. 【C 语言】字符串拷贝 ( 指针使用前判空 | while 空语句 )

    文章目录 一.指针使用前判空 二.while 空语句 三.代码示例 一.指针使用前判空 在任何指针使用之前 , 要先进行判空 ; 尤其是 函数 形参 指针 , 使用前先 判断该 指针变量 是一个合法的 ...

  6. 【C 语言】字符串拷贝 ( 优化指针操作 )

    文章目录 一.优化指针操作 二.优化指针操作 2 三.优化指针操作 3 四.优化指针操作 4 一.优化指针操作 在上一篇博客 [C 语言]字符串拷贝 ( 字符串拷贝业务逻辑代码 | 分离 主函数 与 ...

  7. 【C 语言】字符串拷贝 ( 字符串拷贝业务逻辑代码 | 分离 主函数 与 字符串拷贝 业务模型 )

    文章目录 一.字符串拷贝业务逻辑代码 二.分离 主函数 与 字符串拷贝 业务模型 一.字符串拷贝业务逻辑代码 下面的代码 , 是 字符串 拷贝 最简单的代码 , 仅 使用 指针 遍历内存 , 实现了字 ...

  8. win32汇编使用win32 api实现字符串拷贝

    字符串拷贝,调用win32的lstrcpy函数:拷贝了以后用消息框显示一下: .386 .model flat, stdcall option casemap :noneinclude S:\masm ...

  9. Algorithm:C++语言实现之字符串相关算法(字符串的循环左移、字符串的全排列、带有同个字符的全排列、串匹配问题的BF算法和KMP算法)

    Algorithm:C++语言实现之字符串相关算法(字符串的循环左移.字符串的全排列.带有同个字符的全排列.串匹配问题的BF算法和KMP算法) 目录 一.字符串的算法 1.字符串的循环左移 2.字符串 ...

最新文章

  1. InstallShield 2012 Spring评估试用(1): 支持Windows 8和Windows Server 2012操作系统
  2. [css] 说说你对媒体查询的理解
  3. hdfs如何查找指定目录是否文件_hadoop实战教程-HDFS文件系统如何查看文件对应的block...
  4. Linux 下的多线程下载工具
  5. LeetCode 2099. 找到和最大的长度为 K 的子序列
  6. centos7 修改yum源为阿里源
  7. BugkuCTF-Crypto题小山丘的秘密
  8. 前端多行文本溢出问题解决方案
  9. Team Foundation 和 Visual SourceSafe 之间的区别
  10. [Ext JS 4] MVC 应用程序框架
  11. 在Eclipse中实现C++ 11的完整支持
  12. Python实现给qq自动发消息 终于有人来和我说早安晚安了吗...
  13. stm32+TB6612驱动直流电机
  14. STM32CubeMAX入门篇
  15. cfg文件怎么改回计算机程序,我把一个拓展名为cfg文件用word打开后,凡是cfg的文件图标都变成了word,肿么改回去?...
  16. windows安装exe为系统服务
  17. 计算机绘图课程选用课本,机械制图与计算机绘图 机械制图与计算机绘图 机械制图与计算机绘图课程标准.doc...
  18. 深度!全球机器人产业趋势及特征分析
  19. PL/SQL中存储过程int和out的用法
  20. 有哪些好用的设备巡检类的软件?

热门文章

  1. 一个简单例子:贫血模型or领域模型
  2. jQuery中的 ||
  3. Windows 8 系列(九):关于VariableSizedWrapGrid与WrapGrid 对Visibility变化而引起的布局变化的支持...
  4. 《小强与小明》——正在疯传的伟大的故事
  5. UML学习笔记(三):运用面向对象思想
  6. python程序在线更新_Python自动更新功能
  7. iphone如何信任软件_苹果iPhone手机安装两个微信教程
  8. html5与其他语言的优势,浅谈:html5和html的区别
  9. 电热耦合_作者特稿︱电网运行环境下基于电热耦合潮流的架空线路应力预估
  10. 关于泰勒展开的两点思考