字符串拷贝函数有哪几种方法,哪个效率最高?

一口Linux
关注

strcpy,即string copy(字符串复制)的缩写。

是C语言标准库中实现字符串拷贝的一个函数。

各大公司笔试题最喜欢考的一道题,快来看看,你会几种方法?

问:你会如何实现这个函数呢?

1

 void strcpy(char *strDest, char *strSrc){  
    while( (*strDest++ = *strSrc++) != '' );

//将源字符串 strSrrc加const,表明其为常量输入参数
void strcpy(char *strDest, const char *strSrc){    
   while( (*strDest++ = *strSrc++) != '' );

3

void strcpy(char *strDest, const char *strSrc){    
     //对源地址strSrc和目标地址strDest加非NULL(0)断言  
     assert( (strDest != NULL) && (strSrc != NULL) );    
     while( (*strDest++ = *strSrc++) != '' );

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

char* strcpy(char *strDest, const char *strSrc){
     assert( (strDest != NULL) && (strSrc != NULL) );  
     char *address = strDest;    
     while( (*strDest++ = *strSrc++) != '' );  
     return address;

5

汇编

.text
mystrcopy:
 LDRB r2, [r1], #1
 STRB r2, [r0], #1
 CMP r2, #0
 BNE mystrcopy
 MOV pc, lr

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存