實現C中的strcpy函式

2021-08-04 15:37:17 字數 900 閱讀 1004

1、strcpy庫函式介紹

c語言中在標頭檔案中,c++中在中;

函式原型:char * strcpy(char * deststr, char srcstr);

函式功能:將srcstr中的字串拷貝到deststr的記憶體中;通過字串結束符'\0'來控制結束,如果deststr預留的記憶體不夠的話會「溢位」。

2、實現strcpy函式

這個也是乙個經常出的面試題,如果面試者只是根據功能寫出如下的**

char * my_strcpy(char *dest, char * src)

*p_dest = '\0';

return dest;

}

這樣乙個實現看似是正確的:1)考慮了空指標;

2)返回課目的位址;

3)目的串末尾為'\0';

但是它並沒有考慮「記憶體重疊」問題。這個題目的考察點和memcpy是一樣的,都在考察「記憶體重疊」,如果面試官先問你memcpy的**,然後再問你這個你可能會意識到這個問題。但是如果面試官直接問你strcpy的實現,可能你就蒙了。

對strcpy的改進:

void * my_memcpy(void *dst,const void *src,unsigned int count)  

} else //源位址和目的位址重疊,高位元組向低位元組拷貝

} return ret;

}

char *my_strcpy(char *dst,const char *src)  

這樣就可以有效地處理「記憶體重疊」問題。

C 中strcpy函式的實現

原位址strcpy函式的講解 char strcpy char strdest,const char strsrc 錯誤的做法 1 a 不檢查指標的有效性,說明答題者不注重 的健壯性。b 檢查指標的有效性時使用 strdest strsrc 或 strdest strsrc 說明答題者對c語言中型別...

C 中strcpy函式的實現

我們先來看個例子 char strcpy char strdest,const char strsrc 突然想到之前程式設計客棧做過的乙個試題 題目 已知strcpy函式的原型是 char strcpy char strdest,const char strsrc 1.不呼叫庫函式,實現strcpy...

C 實現strcpy函式

strcpy函式的原型是 char strcpy char strdest,const char strsrc 其中strdest 是目的字串,strsrc 是源字串。不呼叫c c 的字串庫函式,編寫函式 strcpy char strcpy char strdest,const char strs...