订阅
纠错
加入自媒体

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

2021-03-02 17:31
一口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立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号