所在函數(shù)庫(kù)為string.h、mem.h
mem…操作存貯數(shù)組
void *memccpy(void *destin,void *source,unsigned char ch,unsigned n)
void *memchr(void *s,char ch,unsigned n)
void *memcmp(void *s1,void *s2,unsigned n)
int memicmp(void *s1,void *s2,unsigned n)
void *memmove(void *destin,void *source,unsigned n)
void *memcpy(void *destin,void *source,unsigned n)
void *memset(void *s,char ch,unsigned n)
這些函數(shù),mem…系列的所有成員均操作存貯數(shù)組.在所有這些函數(shù)中,數(shù)組是n字節(jié)長(zhǎng).
memcpy從source復(fù)制一個(gè)n字節(jié)的塊到destin.如果源塊和目標(biāo)塊重迭,則選擇復(fù)制方向,
以例正確地復(fù)制覆蓋的字節(jié).
memmove與memcpy相同.
memset將s的所有字節(jié)置于字節(jié)ch中.s數(shù)組的長(zhǎng)度由n給出.
memcmp比較正好是n字節(jié)長(zhǎng)的兩個(gè)字符串s1和s2.些函數(shù)按無(wú)符號(hào)字符比較字節(jié),因此,
memcmp("0xFF","\x7F",1)返回值大于0.
memicmp比較s1和s2的前n個(gè)字節(jié),不管字符大寫(xiě)或小寫(xiě).
memccpy從source復(fù)制字節(jié)到destin.復(fù)制一結(jié)束就發(fā)生下列任一情況:
(1)字符ch首選復(fù)制到destin.
(2)n個(gè)字節(jié)已復(fù)制到destin.
memchr對(duì)字符ch檢索s數(shù)組的前n個(gè)字節(jié).
返回值:memmove和memcpy返回destin
memset返回s的值
memcmp和memicmp─┬─若s1<s2返回值小于0
├─若s1=s2返回值等于0
└─若s1>s2返回值大于0
memccpy若復(fù)制了ch,則返回直接跟隨ch的在destin中的字節(jié)的一個(gè)指針;
否則返回NULL
memchr返回在s中首先出現(xiàn)ch的一個(gè)指針;如果在s數(shù)組中不出現(xiàn)ch,就返回NULL.
void movedata(int segsrc,int offsrc,
int segdest,int offdest,
unsigned numbytes)
本函數(shù)將源地址(segsrc:offsrc)處的numbytes個(gè)字節(jié)
復(fù)制到目標(biāo)地址(segdest:offdest)
void movemem(void *source,void *destin,unsigned len)
本函數(shù)從source處復(fù)制一塊長(zhǎng)len字節(jié)的數(shù)據(jù)到destin.若源地址和目標(biāo)地址字符串
重迭,則選擇復(fù)制方向,以便正確的復(fù)制數(shù)據(jù).
void setmem(void *addr,int len,char value)
本函數(shù)把a(bǔ)ddr所指的塊的第一個(gè)字節(jié)置于字節(jié)value中.
str…字符串操作函數(shù)
char stpcpy(char *dest,const char *src)
將字符串src復(fù)制到dest
char strcat(char *dest,const char *src)
將字符串src添加到dest末尾
char strchr(const char *s,int c)
檢索并返回字符c在字符串s中第一次出現(xiàn)的位置
int strcmp(const char *s1,const char *s2)
比較字符串s1與s2的大小,并返回s1-s2
char strcpy(char *dest,const char *src)
將字符串src復(fù)制到dest
size_t strcspn(const char *s1,const char *s2)
掃描s1,返回在s1中有,在s2中也有的字符個(gè)數(shù)
char strdup(const char *s)
將字符串s復(fù)制到最近建立的單元
int stricmp(const char *s1,const char *s2)
比較字符串s1和s2,并返回s1-s2
size_t strlen(const char *s)
返回字符串s的長(zhǎng)度
char strlwr(char *s)
將字符串s中的大寫(xiě)字母全部轉(zhuǎn)換成小寫(xiě)字母,并返回轉(zhuǎn)換后的字符串
char strncat(char *dest,const char *src,size_t maxlen)
將字符串src中最多maxlen個(gè)字符復(fù)制到字符串dest中
int strncmp(const char *s1,const char *s2,size_t maxlen)
比較字符串s1與s2中的前maxlen個(gè)字符
char strncpy(char *dest,const char *src,size_t maxlen)
復(fù)制src中的前maxlen個(gè)字符到dest中
int strnicmp(const char *s1,const char *s2,size_t maxlen)
比較字符串s1與s2中的前maxlen個(gè)字符
char strnset(char *s,int ch,size_t n)
將字符串s的前n個(gè)字符置于ch中
char strpbrk(const char *s1,const char *s2)
掃描字符串s1,并返回在s1和s2中均有的字符個(gè)數(shù)
char strrchr(const char *s,int c)
掃描最后出現(xiàn)一個(gè)給定字符c的一個(gè)字符串s
char strrev(char *s)
將字符串s中的字符全部顛倒順序重新排列,并返回排列后的字符串
char strset(char *s,int ch)
將一個(gè)字符串s中的所有字符置于一個(gè)給定的字符ch
size_t strspn(const char *s1,const char *s2)
掃描字符串s1,并返回在s1和s2中均有的字符個(gè)數(shù)
char strstr(const char *s1,const char *s2)
掃描字符串s2,并返回第一次出現(xiàn)s1的位置
char strtok(char *s1,const char *s2)
檢索字符串s1,該字符串s1是由字符串s2中定義的定界符所分隔
char strupr(char *s)
將字符串s中的小寫(xiě)字母全部轉(zhuǎn)換成大寫(xiě)字母,并返回轉(zhuǎn)換后的字符串