感覺寫的比較經典的(哈哈,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...