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