专栏首页aCloudDeveloperstring 之 strcpy函数

string 之 strcpy函数

Author: bakari  Date: 2012/8/9

近两年好多的IT公司喜欢拿一些库函数来考,string函数库当然是首选,除此之外,像qsort,STL里的函数也经常火。虽然这些函数咋一看很简单,但有一些细节问题还是很能说明问题,这些细节问题往往就是公司最看重的。吾将之整理作为总结和共享。

下面是我写的代码与源码作的一些比较,均已严格测试通过,分别以“string 之”系列述之。

下面包括strcpy , strncpy函数

 1 /*******************************************************
 2  *  strcpy and strncpy
 3  *  !! Note: *desStr = '\0' Don't forget!
 4  *******************************************************/
 5 char * Mystrcpy(char *desStr, const char *srcStr){
 6     assert(NULL != desStr && NULL != srcStr);
 7     char *address = desStr;
 8 
 9     while( (*desStr ++ = *srcStr ++));  //此条语句与下面的功能一致(值得品味)
10     //while( (*desStr ++ = *srcStr ++) != '\0');
11     //while( (*srcStr ++ ) != '\0' ){
12     //    *desStr ++ = *srcStr;
13     //}
14     //while( *srcStr )
15     //    *desStr++ = *srcStr++;
16     *desStr = '\0';
17 
18     return address;
19 }
20 
21 char * Mystrncpy(char *desStr,const char *srcStr,size_t nCount){
22     assert(NULL != desStr && NULL != srcStr && nCount <= strlen(srcStr));
23     char *address = desStr;
24 
25     while( (nCount --) && (*desStr ++ = *srcStr ++) );
26     //while(nCount --)
27     //    *desStr ++ = *srcStr ++;
28     *desStr = '\0';
29 
30     return address;
31 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • string 之 strcat 函数

    Author: bakari  Date: 2012/8/9 继上篇。。。。。 下面是我写的代码与源码作的一些比较,均已严格测试通过,分别以“string 之”...

    CloudDeveloper
  • 云计算时代,数据中心架构三层到大二层的演变

    为了满足自身的业务需求,保证数据的稳定和可靠。无论是互联网还是传统行业,都会有自己或大或小的数据中心,甚至如阿里云和亚马逊这种专门以出租计算资源的云计算公司,更...

    CloudDeveloper
  • Kubernetes 笔记 07 豌豆荚之旅(二)

    Hi,大家好,我是 CloudDeveloper,欢迎大家和我一起学习 K8S,这是系列第 8 篇。

    CloudDeveloper
  • 白话比原链跨链技术

    随着Bystack的主侧链架构的推出,主侧链之间的跨链问题也成为比原链团队的主要攻克工程难题,当前比原链已经推出了两种跨链的机制,各有不同的侧重点,可能因为本身...

    比原链Bytom
  • 白话比原链跨链技术

    随着Bystack的主侧链架构的推出,主侧链之间的跨链问题也成为比原链团队的主要攻克工程难题,当前比原链已经推出了两种跨链的机制,各有不同的侧重点,可能因为本身...

    比原链Bytom
  • 如何在Ubuntu 14.04上安装和配置Salt Master和Minion服务器

    SaltStack是一个功能强大,灵活,高性能的配置管理和远程执行系统。它可用于从集中位置管理您的基础架构,同时最大限度地减少手动维护步骤。

    温浪
  • SOCKET,TCP/UDP,HTTP,FTP

    (一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层: 网络层:IP协议、ICMP协议、A...

    苦咖啡
  • CMU:深度学习自然语言处理,神经机器翻译与 seq2seq 模型汇总,6 大类型附部署技巧

    【新智元导读】CMU 语言技术研究所助理教授 Graham Neubig 将有关神经机器翻译和 seq2seq 各种模型的概要、重点以及部署技巧整理为一篇长达6...

    新智元
  • 谷歌机器人能给美国制造带来什么?

    ---- 有这样一个广为流传的段子:2011年,当美国总统奥巴马与一众硅谷高管共进晚餐时,他向苹果公司CEO史蒂夫·乔布斯抛出了这样一个问题:怎样才能把iPh...

    机器人网
  • 小程序的三级联动

    yunlgonn

扫码关注云+社区

领取腾讯云代金券