字符串拷貝函數(shù)有哪幾種方法,哪個效率最高?
strcpy,即string copy(字符串復(fù)制)的縮寫。
是C語言標(biāo)準庫中實現(xiàn)字符串拷貝的一個函數(shù)。
各大公司筆試題最喜歡考的一道題,快來看看,你會幾種方法?
問:你會如何實現(xiàn)這個函數(shù)呢?
1
void strcpy(char *strDest, char *strSrc){
while( (*strDest++ = *strSrc++) != '' );
}
2
//將源字符串 strSrrc加const,表明其為常量輸入?yún)?shù)
void strcpy(char *strDest, const char *strSrc){
while( (*strDest++ = *strSrc++) 。 '' );
}
3
void strcpy(char *strDest, const char *strSrc){
//對源地址strSrc和目標(biāo)地址strDest加非NULL(0)斷言
assert( (strDest != NULL) && (strSrc 。 NULL) );
while( (*strDest++ = *strSrc++) 。 '' );
}
4
//為了實現(xiàn)鏈式操作,將目的地址返回
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

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字