memcmp函式實現 string h庫函式

2021-07-08 16:50:46 字數 1930 閱讀 5495

memcmp(3) linux programmer's manual memcmp(3)

name

memcmp - compare memory areas

synopsis

#include

int memcmp(const void *s1, const void *s2, size_t n);

description

the memcmp() function compares the

first n bytes (each interpreted as

unsigned char) of

the memory areas s1 and s2.

return value

the memcmp() function returns an integer less than, equal

to, or

greater than zero if

thefirst n bytes of s1 is found, respectively, to

be less than, to match, or be greater than

thefirst n bytes of s2.

for a nonzero return value, the sign is determined by

the sign of

the difference between

thefirst pair of bytes (interpreted as unsigned

char) that differ in s1 and s2.

#include 

intmemcmp(const

void *s1, const

void *s2, size_t n);

s1:指向要比較的記憶體區域指標1。

s2:指向要比較的記憶體區域指標2。

n:要比較的前n個位元組。

逐字節比較兩記憶體區域資料,當遇到第乙個不相等的位元組區時,返回:

s1所指向當前區域資料大於s2時:返回大於0的值。

s1所指向當前區域資料等於s2時:返回等於0的值。

s1所指向當前區域資料小於s2時:返回小於0的值。

memcmp函式實現記憶體比較,模擬於strcmp:傳送門:

返回值區別在於:

strcmp返回ascii碼差值;

memcmp返回的為位數(是相同情況下strcmp256倍。->自己理解如有偏差,算我說錯^_^);

memcmp函式會逐字節比較s1和s2所指記憶體區,

s1 > s2 —-> 返回 >0 的值

s1 = s2 —-> 返回 =0 的值

s1 < s2 —-> 返回 <0 的值

#define unit  (256)

#define false (('z' - 'a') * unit)

int my_memcmp(const

void *s1, const

void *s2, size_t n)

//比較

while(n-- && *(s1_func) == *(s2_func))

return ((*s1_func - *s2_func)*unit);

}

strcpy,strlen函式和string原型

編寫strcpy函式 已知strcpy函式的原型是char strcpy char strdest,const char strsrc 其中strdest是目的字串,strsrc是源字串。1 不呼叫c c的字串庫函式,請編寫函式 strcpy 2 strcpy能把strsrc的內容複製到strdes...

memcmp和memset函式用法

原型 extern int memcmp void buf1,void buf2,unsigned int count 用法 include 功能 比較記憶體區域buf1和buf2的前count個位元組。說明 當buf1buf2時,返回值 0 功 能 將s所指向的某一塊記憶體中的每個位元組的內容全部...

函式實現 MySQL排名函式實現

現在有個需求對所有學生分數進行排名,並且列出名次。剛看到這個需求,我有點懵逼,完全沒有思路?為什麼難一點需求,我就不會做呢?去網上查詢資料,把所有實現都列出來,全部都要學會。建立乙個分數表s score create table s score id int not null auto increm...