如何字符串拷贝函数的几种方法,你猜哪个效率高?

开发 前端
strcpy,即string copy(字符串复制)的缩写。是C语言标准库中实现字符串拷贝的一个函数。各大公司笔试题最喜欢考的一道题,快来看看,你会几种方法?

[[384584]]

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

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

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

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

1.

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

  • 1.
  • 2.
  • 3.

2.

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

  • 1.
  • 2.
  • 3.
  • 4.

3

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

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

4

//为了实现链式操作,将目的地址返回 
char* strcpy(char *strDest, const char *strSrc){  
      assert( (strDest != NULL) && (strSrc != NULL) );    
      char *address = strDest;     
      while( (*strDest++ = *strSrc++) != '\0' );    
      return address; 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

5

.text 
mystrcopy: 
  LDRB r2, [r1], #1 
  STRB r2, [r0], #1 
  CMP r2, #0 
  BNE mystrcopy 
  MOV pc, lr 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

本文转载自微信公众号「一口Linux」,可以通过以下二维码关注。转载本文请联系一口Linux公众号。

 

责任编辑:武晓燕 来源: 一口Linux
相关推荐

2020-10-16 18:35:53

JavaScript字符串正则表达式

2024-07-22 15:42:08

Linux字符串

2024-10-28 15:33:52

2010-11-26 11:20:31

MySQL字符串处理函

2009-08-06 17:24:08

C#字符串

2011-04-13 09:13:02

Java内存

2010-07-14 16:37:33

SQL Server拆

2023-08-25 16:37:08

Pandas测试

2011-04-06 14:20:50

Java编程

2010-11-26 11:34:32

MySQL截取字符串函

2022-03-31 16:47:30

mysqlcount面试官

2010-09-02 10:02:17

PHP

2020-08-01 16:19:13

JavaScript字符串开发

2010-09-09 11:48:00

SQL函数字符串

2010-05-26 15:36:23

MySQL字符串

2010-05-26 15:14:39

MySQL字符串

2011-09-13 09:57:25

谷歌云计算

2014-01-02 16:14:10

PostgreSQL字符串

2022-07-18 08:18:11

字符JavaJDK

2011-07-11 15:36:44

JavaScript
点赞
收藏

51CTO技术栈公众号