c語言 mem類函式原始碼

2021-07-31 21:46:20 字數 1939 閱讀 8414

原型:void *memcpy(void *dst, const void *src, int count)

從記憶體中讀取src字串指定字元個數copy到dst中,其中dst與src記憶體不能重疊,切拷貝以後需要將dst末尾+』\0『.

源**:

#include

#include

#include

//copy指定字串

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

int main()

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

return dst;

原型:void *memmove(void *dst, const void *src, int count)

作用:作用與memcpy相似,但是改善了memcpy不能copy記憶體重疊字串的情況

源**:

#include#include#include//copy字串,記憶體區域可重疊

void *my_memmove(void *dst, const void *src, int count);

int main()

void *my_memmove(void *dst, const void *src, int count)

//如果dst與src記憶體重疊,從尾部進行拷貝

else

// p[count + 1] = '\0';//這是我之前犯錯的地方,不可以置零

}return dst;

}

注意:重疊的情況要注意在dst末尾賦'\0'.

原型:int memcmp(const void *buffer1, const void ,*buffer2, int count)

作用:比較記憶體區內由使用者指定字元個數的大小,即比較buffer1與buffer2前count個位元組的大小

源**:

#include

#include

//比較記憶體區域buffer1 與 buffer2 的前count個子節

int my_memcmp(const void *buffer1, const void *buffer2, int count);

int main()

int my_memcmp(const void *buffer1, const void *buffer2, int count)

while((count --) && ((*(char *)buffer1++) == ((*(char *)buffer2++))));//對count前的字元逐個比較

return ( *((unsigned char *)buffer1) - *((unsigned char *)buffer2) );//返回當前不等字元的差值,由差值比較大小

}

原型:void *memchr(const void *buffer, int ch, int count)

作用:從buffer所指記憶體區域的前count個位元組查詢字元ch, 

當第一次遇到字元ch時停止查詢。

源**:

#include 

#include

#include

void * my_memchr(const void *buffer, int ch, int count)

return(count ? (void *)buffer : null);

}int main()

1

c語言遊戲原始碼 C語言打字遊戲原始碼

到大街上,還是會羨慕那些情侶,但是依然相信舔狗一無所有,渣男滿載而歸。網易雲熱評 include include include include define max 51 第一測試字母的最大長度void help void start char str str max 1 0 給字串最後加上結束符...

c語言庫函式strcat原始碼實現

c語言strcat函式 strcat 函式的原型是 char strcat char dest,const char src 把 src 所指向的字串追加到 dest 所指向的字串的結尾。該函式返回乙個指向最終的目標字串 dest 的指標。使用之前應包含標頭檔案 include strcat函式經典...

k 均值聚類演算法C語言原始碼

include include define true 1 define false 0 int n 資料個數 int k 集合個數 int centerindex 初始化質心陣列的索引 double center 質心集合 double centercopy 質心集合副本 double allda...