本篇檢視:
(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...