strcpy函数 .

 http://blog.csdn.net/chenlm871224/article/details/4361754

记得当时那个考官面试的时候很客气,我们两个就像聊天似的,虽然结果是我没被录取,但是那个经历确实觉得挺舒服的。当时他问我在计算机方面有什么特长。我的回答是“我对算法尤为感兴趣,喜欢对算法进行研究,而且我写程序的方式比较好,就是我写的程序其他人比较容易看得懂”。然后他就叫我写一个strcpy函数,我当时确实是没什么准备,写了几行就给他看了,写了什么也记得不大清楚了。不过现在想想当时写的“东西”多丑陋啊,10分的话,我还得不了2分,呵呵。。。今天看到类似的题目和解答,发上来大家分享分享。

    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’ );
}

  10分

//为了实现链式操作,将目的地址返回,加3分!

char * strcpy( char *strDest, const char *strSrc )
{
 assert( (strDest != NULL) && (strSrc != NULL) );
 char *address = strDest;
 while( (*strDest++ = * strSrc++) != ‘/0’ );
  return address;
}

  从2分到10分的几个答案我们可以清楚的看到,小小的strcpy竟然暗藏着这么多玄机,真不是盖的!需要多么扎实的基本功才能写一个完美的strcpy啊!
 
可不能小看这些函数啊,多复杂啊,嗨,要学的东西太多了

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值