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
