免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: cuijxin
打印 上一主题 下一主题

[函数] 关于不调用库函数,实现strcpy函数的问题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2007-11-20 11:50 |只看该作者
  1.      29 /*        Copyright (c) 1988 AT&T        */
  2.      30 /*          All Rights Reserved          */
  3.      31
  4.      37 /*
  5.      38  * Copy string s2 to s1.  s1 must be large enough.
  6.      39  * return s1
  7.      40  */
  8.      41 char *
  9.      42 strcpy(char *s1, const char *s2)
  10.      43 {
  11.      44         char *os1 = s1;
  12.      45
  13.      46         while (*s1++ = *s2++)
  14.      47                 ;
  15.      48         return (os1);
  16.      49 }
复制代码

论坛徽章:
7
酉鸡
日期:2013-10-30 17:17:51水瓶座
日期:2014-01-25 14:47:21天秤座
日期:2014-02-20 09:49:50处女座
日期:2014-11-04 17:44:082015年亚洲杯之中国
日期:2015-03-09 17:21:312015亚冠之北京国安
日期:2015-06-01 16:58:552015亚冠之山东鲁能
日期:2015-06-19 11:30:08
22 [报告]
发表于 2007-11-20 13:23 |只看该作者
原帖由 westgarden 于 2007-11-20 11:50 发表
     29 /*        Copyright (c) 1988 AT&T        */
     30 /*          All Rights Reserved          */
     31
     37 /*
     38  * Copy string s2 to s1.  s1 must be large enough.
     39  * return s1
     40  */
  ...


这个版本的代码有点问题啊。

论坛徽章:
0
23 [报告]
发表于 2007-11-20 15:12 |只看该作者
《c programme language》有详细的介绍

论坛徽章:
0
24 [报告]
发表于 2008-09-23 13:59 |只看该作者
/* Copy SRC to DEST.  */
char *
strcpy (dest, src)
     char *dest;
     const char *src;
{
  reg_char c;
  char *s = (char *) src;
  const ptrdiff_t off = dest - src - 1;

  do
    {
      c = *s++;
      s[off] = c;
    }
  while (c != '\0');

  return dest;
}


搜到了这个,比较全面。当然,如果再检查一下dest和src这两个指针就好了。

论坛徽章:
0
25 [报告]
发表于 2008-09-23 14:21 |只看该作者
一直觉得高亮了不好看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP