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...