如何字符串拷貝函數(shù)的幾種方法,你猜哪個效率高?
作者: 土豆居士
strcpy,即string copy(字符串復制)的縮寫。是C語言標準庫中實現(xiàn)字符串拷貝的一個函數(shù)。各大公司筆試題最喜歡考的一道題,快來看看,你會幾種方法?
strcpy,即string copy(字符串復制)的縮寫。
是C語言標準庫中實現(xiàn)字符串拷貝的一個函數(shù)。
各大公司筆試題最喜歡考的一道題,快來看看,你會幾種方法?
問:你會如何實現(xiàn)這個函數(shù)呢?
1.
- void strcpy(char *strDest, char *strSrc){
- while( (*strDest++ = *strSrc++) != '\0' );
- }
2.
- //將源字符串 strSrrc加const,表明其為常量輸入?yún)?shù)
- 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
- //為了實現(xiàn)鏈式操作,將目的地址返回
- 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
本文轉(zhuǎn)載自微信公眾號「一口Linux」,可以通過以下二維碼關注。轉(zhuǎn)載本文請聯(lián)系一口Linux公眾號。
責任編輯:武曉燕
來源:
一口Linux