如何字符串拷貝函數的幾種方法,你猜哪個效率最高?


strcpy,即string copy(字符串復制)的縮寫。

是C語言標准庫中實現字符串拷貝的一個函數。

各大公司筆試題最喜歡考的一道題,快來看看,你會幾種方法?

問:你會如何實現這個函數呢?

1

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

2

//將源字符串 strSrrc加const,表明其為常量輸入參數
void strcpy(char *strDest, const char *strSrc){    
				while( (*strDest++ = *strSrc++) != '\0' );
}

3

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

4

//為了實現鏈式操作,將目的地址返回
char* strcpy(char *strDest, const char *strSrc){ 
      assert( (strDest != NULL) && (strSrc != NULL) );   
      char *address = strDest;    
      while( (*strDest++ = *strSrc++) != '\0' );   
      return address;
}

5

匯編

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM