C語言庫函式的實現

2021-07-06 08:23:02 字數 1192 閱讀 3068

1.c庫中strcmp的實現**

方法1:

int

strcmp(char *str1,char *str2)

return (*(unsigned

char *)str1<*(unsigned

char *)str2 ?-1:1);

}

為什麼使用unsigned char呢?這是因為char的表示範圍是-128~127,unsigned char的表示範圍是0~255。如果不使用unsigned char的話,傳入ascii不會出現問題,但是若傳入擴充套件ascii碼會出現問題。

字串其實就是字元陣列(最後乙個字元為『\0』),所以字串」hello」<」helloworld」,

方法2:

int strcmp(char *str1,char *str2)

if(ret>0)

ret=1;

else

if(ret<0)

ret=-1;

return ret;

}

2.c 語言庫函式strcpy的實現

char *strcpy(char *strdest,char *strsrc)

3.記憶體拷貝函式memcpy

需注意的是:按照ansi(american national standards institute)標準,不能對void指標進行演算法操作,即不能對void指標進行如p++的操作,所以需要轉換為具體的型別指標來操作,例如char *。

void * memcpy(void *pto,const void *pfrom,size_t count)

return ret;

}

4.記憶體操作memmove函式

void* memcpy(void *pto,const

void *pfrom,size_t size)

}else

//有記憶體重疊,從高位址開始複製

}return ret;

}

從程式可以看出當pto和pfrom所指區域沒有重疊時,兩個函式時完全一樣的,記憶體沒有重疊的條件是:pto<=pfrom ||(char )pto>=(char )pfrom+size.否則,memcpy是不能正常工作的,而memmove是可以正常工作的

c語言庫函式

1 asll可現實字元 include library.h u8 lib int2string u32 number,u8 char s char s i 0 for j 0 j i 2 j return i description 初始化記憶體函式,以位元組為單位 param in pdst 目標...

C語言庫函式

定義 庫函式 顧名思義是把函式放到庫里,是別人 或組織 把一些常用到的函式編完放到乙個檔案裡,供程式設計人使用,程式設計人用的時候把它所在的檔名用 include 加到裡面就可以了 尖括號內填寫檔名 例如 include。簡介 c語言是一種非常優秀的程式設計的入門語言。它比其他大部分語言都簡潔易學,...

C語言標準庫函式getenv的實現

c語言標準庫函式getenv可獲取環境引數 根據引數名稱 函式宣告 char getenv char name extern char environ 其實現如下 glibc 1.09.1 sysdeps generic getenv.c cpp view plain copy return the...