Mem庫函式模擬實現

2021-07-31 03:15:59 字數 2041 閱讀 9684

本篇檢視:

(1)memset

(2)memcpy

(3)memmove

(4)memcmp

(5)memchr

memset

功能:將一段記憶體初始化為某個值;函式拷貝ch 到buffer 從頭開始的count 個字元裡, 並返回buffer指標。

函式原型:void *memset( void *buffer, int ch, size_t count );

**實現:

void* mymemset(void* bf, int ch, size_t n)

return ptr;

}

memcpy

功能:函式從from中複製count 個字元到to中,並返回to指標兩者重疊時,不能正常進行;

函式原型:void *memcpy( void *to, const void *from, size_t count );

**實現:

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

return ret;

}

memmove

功能:函式從from中複製count 個字元到to中,並返回to指標兩者重疊時,依舊可以正常進行

函式原型:void *memcpy( void *to, const void *from, size_t count );

**實現:

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

} else //從後向前拷 }

}

memcmp

功能:函式比較buffer1 和 buffer2的前count 個字元

函式原型:int memcmp( const void *buffer1, const void *buffer2, size_t count );

**實現:

int mymemcmp(const void* dst, const void* src, size_t size)

else if (*(char*)dst > *(char*)src)

else

}return 0;

}

memchr

功能:函式在buffer指向的陣列的count個字元的字串裡查詢ch 首次出現的位置,返回乙個指標,指向ch 在字串中首次出現的位置, 如果ch 沒有在字串中找到,返回null。

函式原型:void *memchr( const void *buffer, int ch, size_t count );

**實現:

void* mymemchr(const void* ptr, int ch, size_t size)

if (size)

else

}

模擬實現str系列和mem系列庫函式

1.實現strcpy 拷貝字串 char my strcpy char dest,const char src return ret 注意 strcpy會將 0也拷貝,但是需要注意目標位址有足夠的空間進行拷貝。2.實現strcat 字串追加。strcat也會把src的 0拷貝到末尾,需要保證空間足夠...

模擬實現庫函式 printf

上次在部落格中提到過可變引數列表的使用,今天我再次使用可變引數列表來模擬實現庫函式printf。實現 如下 如有不理解的地方請檢視可變引數列表那篇部落格 include includevoid my printf const char format,break case s break defaul...

模擬實現庫函式strcpy

自己動手實現庫函式strcpy的功能 定義兩個指標,指標dest指向需要進行拷貝的字串,指標src指向被拷貝的字串。如果指標src指向的內容不是 0 把src所指的內容賦給dest所指的內容。然後把src和dest都加1。函式名為my strcpy,返回值為char 兩個引數,分別為字元指標dest...