最简单的挑战(一):你能写一小段合格的代码吗?(训练营热身课)

  最简单的挑战(一):你能写一小段合格的代码吗?

 作为热身,我们就从一个最简单的目标开始:写一段合格的程序。

 假设我们听到的要求是这样的:“写一个函数,实现类似strcat的功能,即把一个字符串拷贝到另一个字符串的后面”。

 怎么样,听到这样的要求我们作为专业程序员应该怎么做?哈哈,太简单了,小儿科?根据经验,最先跳起来的往往就是刚刚学过C或者C++的学生:就这要求?简直侮辱俺这名牌大学生的智慧!

 那就写写看吧。OK, 开始计时....

 void fool(char* s1,char* s2)
{
memcpy(s1+strlen(s1),s2,strlen(s2));
}

 ....15秒,完成。遗憾的是,像上面这样的代码可以直接扔到垃圾桶里,如果是应聘程序员的话估计会被归入永不录用一栏。

 当然,我想大家都能看出来,上面这段代码有个低级错误,那就是新字符串结尾没有'/0'标志,相信聪明点的顺手就可以给出改正版:

 void fool(char* s1,char* s2)
{
memcpy(s1+strlen(s1),s2,strlen(s2)+1);
}

 这样没问题了吧?估计改正者还能洋洋得意,因为他利用了s2结尾的'/0',不用专门增加一条语句给新串加结束标志。

 但是,这样的代码只能得零分,因为写这种代码的人不具备产品开发的基本要求,距离合格还有遥远的距离。为什么这么说?不要着急,不妨先想想。

 试一试吗?看看自己能否完成这么简单的任务?没有任何高深的东西,只需要你完成“写一个函数,实现类似strcat的功能,即把一个字符串拷贝到另一个字符串的后面”而已。

本训练营的群组:http://groups.csdn.net/devs

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值