一些字串及記憶體操作的函式的實現

2021-05-28 09:22:08 字數 1947 閱讀 3567

感覺寫的比較經典的(哈哈,kaige),沒找到怎麼**,就弄過來了,下面是該文章的原作者及位址。

**wuzhekai部落格:

本文給出了一些字串及記憶體操作的函式的實現:memcpy、memset、memmove、strcpy、strcmp、strlen、strstr、strcat,為了與標準區分,所有函式名前加了下劃線。下面給出這些函式的實現。如果錯誤,還請讀者指正。

view plainprint?

//函式功能: 拷貝不重疊的記憶體塊  

//函式引數: dest指向目的,src指向源,size為拷貝的位元組數

//返回值: 指向目的的指標

void * _memcpy(void *dest, const void *src, size_t count)

//函式功能: 把buffer所指記憶體區域的前count個位元組設定成字元c

//函式引數: buffer指向記憶體塊,c為填充值,count為填充位元組數

//返回值: 指向記憶體塊的指標

void * _memset(void* buffer, int c, size_t count)

//函式功能: 由src所指記憶體區域複製count個位元組到dest所指記憶體區域

//函式引數: dest指向目的,src指向源,count為拷貝的位元組數

//返回值: 指向記憶體塊的指標

void * _memmove(void* dest, const void* src, size_t count)

else

return dest;

}

//函式功能: 字串拷貝

//函式引數: dest指向目的,src指向源

//返回值: 指向目的串的指標

char * _strcpy(char *dest, const char *src)

//函式功能: 字串拼接,將src拼接到dest

//函式引數: dest指向目的,src指向源

//返回值: 指向目的串的指標

char * _strcat(char *dest, const char *src)

//函式功能: 字串長度

//函式引數: str指向求長度的字串

//返回值: 長度

size_t _strlen(const char *str)

//函式功能: 字串比較

//函式引數: s1指向字串1,s2指向字串2

//返回值: 0為相等,負數為小於,正數為大於

int _strcmp(const char *s1, const char *s2)

return *(unsigned char *)s1 - *(unsigned char *)--s2;

}

//函式功能: 字串是否含某子串

//函式引數: str指向字串,substr指向某子串

//返回值: 子串在字串中出現的開始位置

char * _strstr(char * str, char *substr)

if(j == len2)

return str + i;

} return null;

} view plainprint?

//函式功能: 字串比較,只比較n個字元

//函式引數: s1指向字串1,s2指向字串2,n為比較的字元數

//返回值: 0為相等,負數為小於,正數為大於

int strncmp(const char *s1, const char *s2, int n)

return *(unsigned char*)s1 - *(unsigned char *)s2;

}

一些對於字串操作的函式

strcnpy函式 strncpy 是 c語言的庫函式之一,來自 c語言標準庫,定義於 string.h,char strncpy char dest,const char src,int n 把src所指向的字串中以src位址開始的前n個位元組複製到dest所指的陣列中,並返回dest。函式原型c...

string 的一些字串操作函式

1.find查詢函式 函式原型 size t find const string str,size t pos 0 const size t find const char s,size t pos,size t n const size t find const char s,size t pos...

string 的一些字串操作函式

1.find查詢函式 函式原型 size t find const string str,size t pos 0 const size t find const char s,size t pos,size t n const size t find const char s,size t pos...