C語言常見函式重寫

2021-07-04 02:39:34 字數 1131 閱讀 3598

面試題中經常出現一類考題就是,重新實現c語言中的庫函式,例如:strcpy,memcpy,stcmp...

/* strcpy函式 */

char *mystrcpy(char *des, const char *src)

/* strlen函式 */

int mystrlen(const char* str)

int my_strlen(const char *str)

/* strcmp函式 */該函式是將兩個字串自左向右逐個字元比較(按ascll值比較大小),直到出現不同字元或者遇到  '\0' 為止。

int mystrcmp(char *s, char *t)

return ((*(unsigned char*)s < *(unsigned char*)t) ? -1:1);

}

/* strcpy與memcpy不同 */

strcpy和memcpy主要有以下3方面的區別。

1、複製的內容不同。strcpy只能複製字串,而memcpy可以複製任意內容,例如字元陣列、整型、結構體、類等。

2、複製的方法不同。strcpy不需要指定長度,它遇到被複製字元的串結束符"\0"才結束,所以容易溢位。memcpy則是根據其第3個引數決定複製的長度。

3、用途不同。通常在複製字串時用strcpy,而需要複製其他型別資料時則一般用memcpy

/* memcpy函式實現 */

void * :可以被賦值為任意型別指標物件,但不能做類似 ++、-- 等操作,需要型別轉換才可以

void * mymemcpy(void *dst, const void *src, size_t count)

} else // dst < src,從高位元組(src)往低位元組(dst)拷貝

{ for (int i=0; i

c語言常見函式

原型 extern void malloc unsigned int num bytes 功能 分配長度為num bytes位元組的記憶體塊 返回值 如果分配成功則返回指向被分配記憶體的指標 此儲存區中的初始值不確定 否則返回空指標null。當記憶體不再使用時,應使用free 函式將記憶體塊釋放。函...

C語言 重寫strupr函式

一 重寫函式 action char fun restrupr char str,char desc else desc 0 desc desc strlen str return 0 備註 1.搭配使用 函式返回值是char,可以不用return 0 return desc 函式不寫返回值,用re...

C語言標準庫函式的理解與重寫

1.實現strcpy 2.實現strcat 3.實現strstr 4.實現strchr 5.實現strcmp 6.實現memcpy 7.實現memmove 為了更好的去理解這幾個函式的用法,自己去實現一下功能,才能更好的學習 include size t strlen const char str ...