2008年(35)
分类: C/C++
2008-04-16 15:08:04
返回值:
memmove和memcpy返回destin
memset返回s的值
memcmp和memicmp─┬─若s1
├─若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中的小写字母全部转换成大写字母,并返回转换后的字符串
存贮分配子程序,所在函数库为dos.h、alloc.h、malloc.h、stdlib.h、process.h
int allocmem(unsigned size,unsigned *seg)
利用DOS分配空闲的内存,size为分配内存大小,seg为分配后的内存指针
int freemem(unsigned seg)
释放先前由allocmem分配的内存,seg为指定的内存指针
int setblock(int seg,int newsize)
本函数用来修改所分配的内存长度,seg为已分配内存的内存指针,newsize为新的长度
int brk(void *endds)
本函数用来改变分配给调用程序的数据段的空间数量,新的空间结束地址为endds
char *sbrk(int incr)
本函数用来增加分配给调用程序的数据段的空间数量,增加incr个字节的空间
unsigned long coreleft()
本函数返回未用的存储区的长度,以字节为单位
void *calloc(unsigned nelem,unsigned elsize)
分配nelem个长度为elsize的内存空间,并返回所分配内存的指针
void *malloc(unsigned size) 分配size个字节的内存空间,并返回所分配内存的指针
void free(void *ptr) 释放先前所分配的内存,所要释放的内存的指针为ptr
void *realloc(void *ptr,unsigned newsize)
改变已分配内存的大小,ptr为已分配有内存区域的指针,newsize为新的长度,
返回分配好的内存指针.
long farcoreleft() 本函数返回远堆中未用的存储区的长度,以字节为单位
void far *farcalloc(unsigned long units,unsigned long unitsz)
从远堆分配units个长度为unitsz的内存空间,并返回所分配内存的指针
void *farmalloc(unsigned long size)
分配size个字节的内存空间,并返回分配的内存指针
void farfree(void far *block)
释放先前从远堆分配的内存空间,所要释放的远堆内存的指针为block
void far *farrealloc(void far *block,unsigned long newsize)
改变已分配的远堆内存的大小,block为已分配有内存区域的指针,newzie为新的长度,
返回分配好的内存指针
时间日期函数,函数库为time.h、dos.h
在时间日期函数里,主要用到的结构有以下几个:
总时间日期贮存结构tm
┌──────────────────────┐
│struct tm │
│{ │
│ int tm_sec; /*秒,0-59*/ │
│ int tm_min; /*分,0-59*/ │
│ int tm_hour; /*时,0-23*/ │
│ int tm_mday; /*天数,1-31*/ │
│ int tm_mon; /*月数,0-11*/ │
│ int tm_year; /*自1900的年数*/ │
│ int tm_wday; /*自星期日的天数0-6*/ │
│ int tm_yday; /*自
│ int tm_isdst; /*是否采用夏时制,采用为正数*/│
│} │
└──────────────────────┘
日期贮存结构date
┌───────────────┐
│struct date │
│{ │
│ int da_year; /*自1900的年数*/│
│ char da_day; /*天数*/ │
│ char da_mon; /*月数 1=Jan*/ │
│} │
└───────────────┘
时间贮存结构time
┌────────────────┐
│struct time │
│{ │
│ unsigned char ti_min; /*分钟*/│
│ unsigned char ti_hour; /*小时*/│
│ unsigned char ti_hund; │
│ unsigned char ti_sec; /*秒*/ │
│ } │
└────────────────┘
char *ctime(long *clock)
本函数把clock所指的时间(如由函数time返回的时间)转换成下列格式的
字符串:Mon Nov 21 11:31:54 1983\n\0
char *asctime(struct tm *tm)
本函数把指定的tm结构类的时间转换成下列格式的字符串:
Mon Nov 21 11:31:54 1983\n\0
double difftime(time_t time2,time_t time1)
计算结构time2和time1之间的时间差距(以秒为单位)
struct tm *gmtime(long *clock)
本函数把clock所指的时间(如由函数time返回的时间)转换成格林威治时间,
并以tm结构形式返回
struct tm *localtime(long *clock)
本函数把clock所指的时间(如函数time返回的时间)转换成当地标准时间,
并以tm结构形式返回
void tzset() 本函数提供了对UNIX操作系统的兼容性
long dostounix(struct date *dateptr,struct time *timeptr)
本函数将dateptr所指的日期,timeptr所指的时间转换成UNIX格式,并返回
自格林威治时间
void unixtodos(long utime,struct date *dateptr,struct time *timeptr)
本函数将自格林威治时间
DOS格式并保存于用户所指的结构dateptr和timeptr中
void getdate(struct date *dateblk) 本函数将计算机内的日期写入结构dateblk中以供用户使用
void setdate(struct date *dateblk) 本函数将计算机内的日期改成由结构dateblk所指定的日期
void gettime(struct time *timep) 本函数将计算机内的时间写入结构timep中,以供用户使用
void settime(struct time *timep) 本函数将计算机内的时间改为由结构timep所指的时间
long time(long *tloc)
本函数给出自格林威治时间
并将该值存于tloc所指的单元中.
int stime(long *tp) 本函数将tp所指的时间(例如由time所返回的时间)写入计算机中.