c语言函数定义四要素,C语言函数-程序员宅基地

技术标签: c语言函数定义四要素  

C语言函数是一种函数,用来编译C语言,一般包括字符库函数,数学函数,目录函数,进程函数,诊断函数,操作函数等。[1]

中文名

C语言函数

外文名

C language function用    途

编译C语言

所在函数库

性    质

函数

C语言函数字符库函数

编辑

所在函数库为【】[2]

int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0

int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9')

返回非0值,否则返回0

int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0

int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F)

返回非0值,否则返回0

int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0

int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0

int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0

int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0

int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0

int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'),

走纸换行('\f'),垂直制表符('\v'),换行符('\n')

返回非0值,否则返回0

int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0

int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值,

否则返回0

int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z')

int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')

C语言函数数学函数

编辑

所在函数库为、stdio.h、string.h、float.h[3]

int abs(int i) 返回整型参数i的绝对值

double cabs(struct complex znum) 返回复数znum的绝对值

double fabs(double x) 返回双精度参数x的绝对值

long labs(long n) 返回长整型参数n的绝对值

double exp(double x) 返回指数函数ex的值

double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中

double ldexp(double value,int exp); 返回value*2exp的值

double log(double x) 返回logex的值

double log10(double x) 返回log10x的值

double pow(double x,double y) 返回x^y的值

double pow10(int p) 返回10^p的值

double sqrt(double x) 返回+√x的值

double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度

double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度

double atan(double x) 返回x的反正切tan-1(x)值,x为弧度

double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x为弧度

double cos(double x) 返回x的余弦cos(x)值,x为弧度

double sin(double x) 返回x的正弦sin(x)值,x为弧度

double tan(double x) 返回x的正切tan(x)值,x为弧度

double cosh(double x) 返回x的双曲余弦cosh(x)值,x为弧度

double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度

double tanh(double x) 返回x的双曲正切tanh(x)值,x为弧度

double hypot(double x,double y) 返回直角三角形斜边的长度(z),x和y为直角边的长度,z2=x2+y2

double ceil(double x) 返回不小于x的最小整数

double floor(double x) 返回不大于x的最大整数

void srand(unsigned seed) 初始化随机数发生器

int rand() 产生一个随机数并返回这个数

double poly(double x,int n,double c[])从参数产生一个多项式

double modf(double value,double *iptr)将双精度数value分解成尾数和阶

double fmod(double x,double y) 返回x/y的余数

double frexp(double value,int *eptr) 将双精度数value分成尾数和阶

double atof(char *nptr) 将字符串nptr转换成浮点数并返回这个浮点数

double atoi(char *nptr) 将字符串nptr转换成整数并返回这个整数

double atol(char *nptr) 将字符串nptr转换成长整数并返回这个整数

char *ecvt(double value,int ndigit,int *decpt,int *sign),将浮点数value转换成字符串并返回该字符串

char *fcvt(double value,int ndigit,int *decpt,int *sign),将浮点数value转换成字符串并返回该字符串

char *gcvt(double value,int ndigit,char *buf),将数value转换成字符串并存于buf中,并返回buf的指针

char *ultoa(unsigned long value,char *string,int radix),将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数

char *ltoa(long value,char *string,int radix),将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数

char *itoa(int value,char *string,int radix),将整数value转换成字符串存入string,radix为转换时所用基数

double atof(char *nptr) 将字符串nptr转换成双精度数,并返回这个数,错误返回0

int atoi(char *nptr) 将字符串nptr转换成整型数, 并返回这个数,错误返回0

long atol(char *nptr) 将字符串nptr转换成长整型数,并返回这个数,错误返回0

double strtod(char *str,char **endptr)将字符串str转换成双精度数,并返回这个数,

long strtol(char *str,char **endptr,int base)将字符串str转换成长整型数,并返回这个数,

int matherr(struct exception *e),用户修改数学错误返回信息函数(没有必要使用)

double _matherr(_mexcep why,char *fun,double *arg1p,double *arg2p,double retval),用户修改数学错误返回信息函数(没有必要使用)

unsigned int _clear87() 清除浮点状态字并返回原来的浮点状态

void _fpreset() 重新初使化浮点数学程序包

unsigned int _status87() 返回浮点状态字

C语言函数目录函数

编辑

所在函数库为dir.h、dos.h[3]

int chdir(char *path) 使指定的目录path(如:"C:\\WPS")变成当前的工作目录,成功返回0

int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功返回0

pathname为指定的目录名和文件名,如"C:\\WPS\\TXT"

ffblk为指定的保存文件信息的一个结构,定义如下:struct ffblk

{

char ff_reserved[21]; /*DOS保留字*/

char ff_attrib;       /*文件属性*/

int  ff_ftime;        /*文件时间*/

int  ff_fdate;        /*文件日期*/

long ff_fsize;        /*文件长度*/

char ff_name[13];     /*文件名*/

}

attrib为文件属性,由以下字符代表

┃FA_RDONLY 只读文件┃FA_LABEL 卷标号┃

┃FA_HIDDEN 隐藏文件┃FA_DIREC 目录 ┃

┃FA_SYSTEM 系统文件┃FA_ARCH 档案 ┃

C语言函数进程函数

编辑

void abort() 此函数通过调用具有出口代码3的_exit写一个终止信息于stderr,并异常终止程序 无返回值

int exec…装入和运行其它程序

int execl( char *pathname,char *arg0,char *arg1,…,char *argn,NULL)

int execle( char *pathname,char *arg0,char *arg1,…,char *argn,NULL,char *envp[])

int execlp( char *pathname,char *arg0,char *arg1,…,NULL)

int execlpe(char *pathname,char *arg0,char *arg1,…,NULL,char *envp[])

int execv( char *pathname,char *argv[])

int execve( char *pathname,char *argv[],char *envp[])

int execvp( char *pathname,char *argv[])

int execvpe(char *pathname,char *argv[],char *envp[]),exec函数族装入并运行程序pathname,并将参数

arg0(arg1,arg2,argv[],envp[])传递给子程序,出错返回-1,在exec函数族中,后缀l、v、p、e添加到exec后,所指定的函数将具有某种操作能力有后缀 p时,函数可以利用DOS的PATH变量查找子程序文件l时,函数中被传递的参数个数固定v时,函数中被传递的参数个数不固定e时,函数传递指定参数envp,允许改变子进程的环境,无后缀e时,子进程使用当前程序的环境

void _exit(int status)终止当前程序,但不清理现场

void exit(int status) 终止当前程序,关闭所有文件,写缓冲区的输出(等待输出),并调用任何寄存器的"出口函数",无返回值

int spawn…运行子程序

int spawnl( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL)

int spawnle( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int spawnlp( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL)

int spawnlpe(int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int spawnv( int mode,char *pathname,char *argv[])

int spawnve( int mode,char *pathname,char *argv[],char *envp[])

int spawnvp( int mode,char *pathname,char *argv[])

int spawnvpe(int mode,char *pathname,char *argv[],char *envp[]),spawn函数族在mode模式下运行子程序pathname,并将参数arg0(arg1,arg2,argv[],envp[])传递给子程序,出错返回-1,mode为运行模式,mode为 P_WAIT 表示在子程序运行完后返回本程序,P_NOWAIT 表示在子程序运行时同时运行本程序(不可用),P_OVERLAY表示在本程序退出后运行子程序,在spawn函数族中,后缀l、v、p、e添加到spawn后,所指定的函数将具有某种操作能力有后缀 p时, 函数利用DOS的PATH查找子程序文件l时,函数传递的参数个数固定v时, 函数传递的参数个数不固定e时, 指定参数envp可以传递给子程序,允许改变子程序运行环境当无后缀e时,子程序使用本程序的环境

int system(char *command) ,将MSDOS命令command传递给DOS执行转换子程序,函数库为math.h、stdlib.h、ctype.h、float.h

char *ecvt(double value,int ndigit,int *decpt,int *sign),将浮点数value转换成字符串并返回该字符串

char *fcvt(double value,int ndigit,int *decpt,int *sign),将浮点数value转换成字符串并返回该字符串

char *gcvt(double value,int ndigit,char *buf),将数value转换成字符串并存于buf中,并返回buf的指针

char *ultoa(unsigned long value,char *string,int radix),将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数

char *ltoa(long value,char *string,int radix),将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数

char *itoa(int value,char *string,int radix),将整数value转换成字符串存入string,radix为转换时所用基数

double atof(char *nptr) 将字符串nptr转换成双精度数,并返回这个数,错误返回0

int atoi(char *nptr) 将字符串nptr转换成整型数, 并返回这个数,错误返回0

long atol(char *nptr) 将字符串nptr转换成长整型数,并返回这个数,错误返回0

double strtod(char *str,char **endptr)将字符串str转换成双精度数,并返回这个数,

long strtol(char *str,char **endptr,int base)将字符串str转换成长整型数,并返回这个数,

int toascii(int c) 返回c相应的ASCII

int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z')

int _tolower(int ch) 返回ch相应的小写字母('a'-'z')

int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')

int _toupper(int ch) 返回ch相应的大写字母('A'-'Z')

C语言函数诊断函数

编辑

所在函数库为assert.h、[2]

void assert(int test) 一个扩展成if语句那样的宏,如果test测试失败,就显示一个信息并异常终止程序,无返回值

void perror(char *string) 本函数将显示最近一次的错误信息,格式如下:字符串string:错误信息

char *strerror(char *str) 本函数返回最近一次的错误信息,格式如下:字符串str:错误信息

int matherr(struct exception *e),用户修改数学错误返回信息函数(没有必要使用)

double _matherr(_mexcep why,char *fun,double *arg1p,double *arg2p,double retval),用户修改数学错误返回信息函数(没有必要使用) 输入输出子程序,函数库为io.h、conio.h、stat.h、dos.h、stdio.h、signal.h

int kbhit() 本函数返回最近所敲的按键

int fgetchar() 从控制台(键盘)读一个字符,显示在屏幕上

int getch() 从控制台(键盘)读一个字符,不显示在屏幕上

int putch() 向控制台(键盘)写一个字符

int getchar() 从控制台(键盘)读一个字符,显示在屏幕上

int putchar() 向控制台(键盘)写一个字符

int getche() 从控制台(键盘)读一个字符,显示在屏幕上

int ungetch(int c) 把字符c退回给控制台(键盘)

char *cgets(char *string) 从控制台(键盘)读入字符串存于string中

int scanf(char *format[,argument…])从控制台读入一个字符串,分别对各个参数进行赋值,使用BIOS进行输出

int vscanf(char *format,Valist param)从控制台读入一个字符串,分别对各个参数进行赋值,使用BIOS进行输出,参数从Valist param中取得

int cscanf(char *format[,argument…])从控制台读入一个字符串,分别对各个参数进行赋值,直接对控制台作操作,比如显示器在显示时字符时即为直接写频方式显示

int sscanf(char *string,char *format[,argument,…])通过字符串string,分别对各个参数进行赋值

int vsscanf(char *string,char *format,Vlist param)通过字符串string,分别对各个参数进行赋值,参数从Vlist param中取得

int puts(char *string) 发关一个字符串string给控制台(显示器),使用BIOS进行输出

void cputs(char *string) 发送一个字符串string给控制台(显示器),直接对控制台作操作,比如显示器即为直接写频方式显示

int printf(char *format[,argument,…]) 发送格式化字符串输出给控制台(显示器),使用BIOS进行输出

int vprintf(char *format,Valist param) 发送格式化字符串输出给控制台(显示器),使用BIOS进行输出,参数从Valist param中取得

int cprintf(char *format[,argument,…]) 发送格式化字符串输出给控制台(显示器),直接对控制台作操作,比如显示器即为直接写频方式显示

int vcprintf(char *format,Valist param)发送格式化字符串输出给控制台(显示器),直接对控制台作操作,比如显示器即为直接写频方式显示,参数从Valist param中取得

int sprintf(char *string,char *format[,argument,…]),将字符串string的内容重新写为格式化后的字符串

int vsprintf(char *string,char *format,Valist param),将字符串string的内容重新写为格式化后的字符串,参数从Valist param中取得

int rename(char *oldname,char *newname)将文件oldname的名称改为newname

int ioctl(int handle,int cmd[,int *argdx,int argcx]),本函数是用来控制输入/输出设备的

int (*ssignal(int sig,int(*action)())()执行软件信号(没必要使用)

int gsignal(int sig) 执行软件信号(没必要使用)

int _open(char *pathname,int access)为读或写打开一个文件,按后按access来确定是读文件还是写文件

C语言函数接口子程序

编辑

所在函数库为:dos.h、bios.h[1]

unsigned sleep(unsigned seconds)暂停seconds微秒(百分之一秒)

int unlink(char *filename)删除文件filename

unsigned FP_OFF(void far *farptr)本函数用来取远指针farptr的偏移量

unsigned FP_SEG(void far *farptr)本函数用来没置远指针farptr的段值

void far *MK_FP(unsigned seg,unsigned off)根据段seg和偏移量off构造一个far指针

unsigned getpsp()取程序段前缀的段地址,并返回这个地址

char *parsfnm(char *cmdline,struct fcb *fcbptr,int option),函数分析一个字符串,通常,对一个文件名来说,是由cmdline所指的一个命令行,文件名是放入一个FCB中作为一个驱动器,文件名和扩展名.FCB是由fcbptr所指定的.option参数是DOS分析系统调用时AL文本的值

int absread(int drive,int nsects,int sectno,void *buffer)本函数功能为读特定的磁盘扇区,drive为驱动器号(0=A,1=B等),nsects为要读的扇区数,sectno为开始的逻辑扇区号,buffer为保存所读数据的保存空间

int abswrite(int drive,int nsects,int sectno,void *buffer)本函数功能为写特定的磁盘扇区,drive为驱动器号(0=A,1=B等),nsects为要写的扇区数,sectno为开始的逻辑扇区号,buffer为保存所写数据的所在空间

void getdfree(int drive,struct dfree *dfreep)本函数用来取磁盘的自由空间,drive为磁盘号(0=当前,1=A等).函数将磁盘特性的由dfreep指向的dfree结构中.

char far *getdta() 取磁盘转换地址DTA

void setdta(char far *dta)设置磁盘转换地址DTA

void getfat(int drive,fatinfo *fatblkp)

本函数返回指定驱动器drive(0=当前,1=A,2=B等)的文件分配表信息并存入结构fatblkp中

void getfatd(struct fatinfo *fatblkp) 本函数返回当前驱动器的文件分配表信息,并存入结构fatblkp中

int bdos(int dosfun,unsigned dosdx,unsigned dosal)本函数对MSDOS系统进行调用,

dosdx为寄存器dx的值,dosal为寄存器al的值,dosfun为功能号

int bdosptr(int dosfun,void *argument,unsiigned dosal)本函数对MSDOS系统进行调用,

argument为寄存器dx的值,dosal为寄存器al的值,dosfun为功能号

int int86(int intr_num,union REGS *inregs,union REGS *outregs)

执行intr_num号中断,用户定义的寄存器值存于结构inregs中,

执行完后将返回的寄存器值存于结构outregs中.

int int86x(int intr_num,union REGS *inregs,union REGS *outregs,

struct SREGS *segregs)执行intr_num号中断,用户定义的寄存器值存于

结构inregs中和结构segregs中,执行完后将返回的寄存器值存于结构outregs中.

int intdos(union REGS *inregs,union REGS *outregs)

本函数执行DOS中断0x21来调用一个指定的DOS函数,用户定义的寄存器值

存于结构inregs中,执行完后函数将返回的寄存器值存于结构outregs中

int intdosx(union REGS *inregs,union REGS *outregs,struct SREGS *segregs)

本函数执行DOS中断0x21来调用一个指定的DOS函数,用户定义的寄存器值

存于结构inregs和segregs中,执行完后函数将返回的寄存器值存于结构outregs中

void intr(int intr_num,struct REGPACK *preg)本函数中一个备用的8086软件中断接口

它能产生一个由参数intr_num指定的8086软件中断.函数在执行软件中断前,

从结构preg复制用户定义的各寄存器值到各个寄存器.软件中断完成后,

函数将当前各个寄存器的值复制到结构preg中.参数如下:

intr_num 被执行的中断号

preg为保存用户定义的寄存器值的结构,结构如下

┌──────────────────────┐

│struct REGPACK │

│{ │

│ unsigned r_ax,r_bx,r_cx,r_dx; │

│ unsigned r_bp,r_si,r_di,r_ds,r_es,r_flags; │

│} │

└──────────────────────┘

函数执行完后,将新的寄存器值存于结构preg中

void keep(int status,int size)以status状态返回MSDOS,但程序仍保留于内存中,所占

用空间由size决定.

void ctrlbrk(int (*fptr)()) 设置中断后的对中断的处理程序.

void disable() 禁止发生中断

void enable() 允许发生中断

void geninterrupt(int intr_num)执行由intr_num所指定的软件中断

void interrupt(* getvect(int intr_num))() 返回中断号为intr_num的中断处理程序,

例如: old_int_10h=getvect(0x10);

void setvect(int intr_num,void interrupt(* isr)()) 设置中断号为intr_num的中

断处理程序为isr,例如: setvect(0x10,new_int_10h);

void harderr(int (*fptr)()) 定义一个硬件错误处理程序,

每当出现错误时就调用fptr所指的程序

void hardresume(int rescode)硬件错误处理函数

void hardretn(int errcode) 硬件错误处理函数

int inport(int prot) 从指定的输入端口读入一个字,并返回这个字

int inportb(int port)从指定的输入端口读入一个字节,并返回这个字节

void outport(int port,int word) 将字word写入指定的输出端口port

void outportb(int port,char byte)将字节byte写入指定的输出端口port

int peek(int segment,unsigned offset) 函数返回segment:offset处的一个字

char peekb(int segment,unsigned offset)函数返回segment:offset处的一个字节

void poke(int segment,int offset,char value) 将字value写到segment:offset处

void pokeb(int segment,int offset,int value) 将字节value写到segment:offset处

int randbrd(struct fcb *fcbptr,int reccnt)

函数利用打开fcbptr所指的FCB读reccnt个记录.

int randbwr(struct fcb *fcbptr,int reccnt)

函数将fcbptr所指的FCB中的reccnt个记录写到磁盘上

void segread(struct SREGS *segtbl)函数把段寄存器的当前值放进结构segtbl中

int getverify() 取检验标志的当前状态(0=检验关闭,1=检验打开)

void setverify(int value)设置当前检验状态,

value为0表示关闭检验,为1表示打开检验

int getcbrk()本函数返回控制中断检测的当前设置

int setcbrk(int value)本函数用来设置控制中断检测为接通或断开

当value=0时,为断开检测.当value=1时,为接开检测

int dosexterr(struct DOSERR *eblkp)取扩展错误.在DOS出现错误后,此函数将扩充的

错误信息填入eblkp所指的DOSERR结构中.该结构定义如下:

┌──────────────┐

│struct DOSERR │

│{ │

│ int exterror;/*扩展错误*/ │

│ char class; /*错误类型*/ │

│ char action; /*方式*/ │

│ char locus; /*错误场所*/ │

│} │

└──────────────┘

C语言函数操作函数

编辑

所在函数库为string.h、mem.h[4]

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

├─若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为新的长度,返回分配好

的内存指针

C语言函数时间日期函数

编辑

函数库为time.h、[4]

在时间日期函数里,主要用到的结构有以下几个:

总时间日期贮存结构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; /*自1月1日起的天数,0-365*/ │

│ 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格式,并返回

自格林威治时间1970年1月1日凌晨起到现在的秒数

void unixtodos(long utime,struct date *dateptr,struct time *timeptr)

本函数将自格林威治时间1970年1月1日凌晨起到现在的秒数utime转换成

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)本函数给出自格林威治时间1970年1月1日凌晨至现在所经

过的秒数,并将该值存于tloc所指的单元中.

int stime(long *tp)本函数将tp所指的时间(例如由time所返回的时间)

写入计算机中.

词条图册

更多图册

参考资料

1.

谭浩强.C程序设计(第4版):清华大学出版社,2010.6

2.

明日科技.C语言函数参考手册:清华大学出版社,2012.1

3.

尹德淳.C函数速查手册:人民邮电出版社,2009.4

4.

陈超.C语言常用函数速查手册:化学工业出版社,2010.6

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42134144/article/details/117146788

智能推荐

python能调用身份证读卡器吗_最近的项目中用到读卡器,用的华视身份证阅读器,附上SDK使用手册...-程序员宅基地

文章浏览阅读860次。最近的项目中用到读卡器,用的华视身份证阅读器,附上SDK使用手册1.定义应用函数开发包含下列文件:termb.dll API函数的动态联接库sdtapi.dll 内部动态库cvrapi.dll 内部动态库wltrs.dll 内部动态库termb.lic 身份证相片解压授权文件,放于C:\目录下2. 函数列表下面这5个为主要的APIint..._cvr_read_content

Failed to bind properties under ‘mybatis-plus.global-config.db-config‘ ...!!问题已解决_failed to bind properties under 'mybatis-plus.glob-程序员宅基地

文章浏览阅读927次。当时以为主程序上没有@MapperSacn注解,然后发现有;发现全局配置里 ,主键的生成策略 id-type: auto,配置出现错误!估计在生成配置时,一不小心调动了配置文件!所以说:小心使得万年船嘛,细心点哦!_failed to bind properties under 'mybatis-plus.global-config.db-config.id-typ

情人节程序员用HTML网页表白【华丽满屏烟花-生日快乐】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript_html表白网页制作源码-程序员宅基地

文章浏览阅读276次。1 网页简介:基于 ,快来制作一款高端的表白网页送(他/她)浪漫的告白,制作修改简单,可自行更换背景音乐,文字和图片即可使用2.网页编辑:任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad++ 等任意html编辑软件进行运行及修改编辑等操作)。代码如下(示例):以下仅展示部分代码供参考~三、精彩专栏看到这里了就 【点赞,关注,收藏】 三连 支持下吧,你的支持是我创作的动力。_html表白网页制作源码

OLAP分析型数据系统应该怎么玩儿?_如何建立olap分析系统-程序员宅基地

文章浏览阅读173次。早期的时候为了方便储存及使用数据,出现了关系型数据库,后来又出现了NOSQL,又后来由于数据存储要求越来越高又出现了大数据(hadoop),以及相关的工具(hbase、hive、spark计算引擎).现在由于更复杂的业务背景,比如复杂维度查询,以及如何对大数据进行简化使用(使用了hadoop,就必须要使用对应的工具),所以市面上就出现新的数据系统:分析型数据库clickhouse、dorisDB和Apche doris.......等等。不过现在市面上较为优秀的就以上三种。OLAP背景clickho_如何建立olap分析系统

k8s之StorageClass(NFS)_storageclass nfs-程序员宅基地

文章浏览阅读2.7k次。k8s之StorageClass(NFS)实验环境k8s环境参考: k8s-v1.20.10 二进制部署指导文档NFS-Subdir-External-Provisioner 简介NFS-Subdir-External-Provisioner是一个自动配置卷程序,它使用现有的和已配置的 NFS 服务器来支持通过持久卷声明动态配置 Kubernetes 持久卷,PV命名规则如下PV以 ${namespace}-${pvcName}-${pvName}的命名格式提供(在NFS服务器上)PV回收的时_storageclass nfs

UIbot中级考试选择题,已知答案为40/60 分。仅供参考_uibot中级认证选择题答案-程序员宅基地

文章浏览阅读3.9k次,点赞2次,收藏2次。_uibot中级认证选择题答案

随便推点

基于arm+uClinux的嵌入式系统的开发-程序员宅基地

文章浏览阅读158次。前些日子基于arm+uClinux开发了一个网络监控系统,眼看项目马上要做完了,终于松了一口气,于是整理了一些笔记和心得想和大家针对这种开发模式进行一些探讨,希望对各位有所帮助。 按照我的开发过程想分以下几部分逐一介绍。 1.开发平台的选择和论证 2.开发环境的建立 3.一般程序的开发 4.Linux程序向ARM+uClinux平台的移植 5.剩下的问题 希望诸位多多补充自己的想法,以利于大家共同..._嵌入式开发 uclinux

华为鸿蒙系统学习笔记5-华为方舟编译器正式开源及相关源码下载_star-413方舟编译器-程序员宅基地

文章浏览阅读3.1k次。8月9日至8月11日,华为面向全球开发者的2019年开发者大会,将在东莞松山湖举行。据悉,今年也是华为第一次在华为松山湖基地欧洲小镇里举办开发者大会。前不久,余承东曾在微博上预告:“让我们用方舟编译器换个打招呼的方式,8月9日相约松山湖,不见不散!”据此前消息,华为方舟编译器将在8月正式开源,此次大会上,余承东有望正式宣布。今日有媒体发现,赶在华为开发者大会开幕前几天,华为已经在官方社区正..._star-413方舟编译器

React web端 高德地图引入_高德glcustomlayer-程序员宅基地

文章浏览阅读1.3k次。1.逆向地理编码(将经度纬度转换地址)时报错10009(USERKEY_PLAT_NOMATCH),明明用的是web端的key值,为什么会报不匹配的bug呢?可能的原因是:在逆向地理编码的时候用的不是逆向编码的url,正确的url地址如图:2.写地理编码时报错:AMap.Geocoder is not a constructor,网上查到的解决方法有:1)入口index.html文件的引入的script的key值后面加上plugin=AMap.Geocoder2)或者是在key值后面接&_高德glcustomlayer

JS实现控件渐隐渐显效果_js 渐隐-程序员宅基地

文章浏览阅读1.9k次。通过div举例:鼠标在div上时使其渐显,鼠标移开使其渐隐<div class="picture" onmouseenter="setstatus(this,1)" onmouseleave="setstatus(this,0)"></div>(1)先给该div添加一个自定义属性用在效果变化的过程中进行中断(比如渐隐未完成时又想让div渐显),应该也有其他方式进行中断;我这里采用0和1作为属性值;初始值为0$(".picture").attr("isno",0)_js 渐隐

失败重试的策略(方法)_失败重试策略-程序员宅基地

文章浏览阅读2.7k次。业务中往往会遇到失败重试的场景,如dubbo调用,默认3次重试,但是有些情况我们不能做重试操作,如被调用的接口不幂等。dubbo失败重试有它的固有缺陷,如:同步重试。往往很多场景并不需要同步的阻塞重试,可以尝试异步重试。本文尝试总结几种自动重试的方法。正文朴素方法朴素就是代码一把梭,不考虑扩展性,重用性。// 指定最大重试次数,成功就返回。for (i = 0; i < retry..._失败重试策略

C#“System.Threading.ThreadStateException”类型的未经处理的异常_system.threading.threadstateexception:“在可以调用 ole 之-程序员宅基地

文章浏览阅读1.6k次。不得已用另一个线程显示界面。但在界面中使用控件时,报错:“System.Threading.ThreadStateException”类型的未经处理的异常在 System.Windows.Forms.dll 中发生。STA 一个对象只能由一个线程访问,相当于windows的消息循环,实现方式也是通过消息循环的,ActiveX控件、OLE文档服务器等有界面的,都使用STA的套间。MTA 一个对象可以被多个线程访问,即这个对象的代码在自己的方法中实现了线程保护,保证可以正确改变自己的状态。_system.threading.threadstateexception:“在可以调用 ole 之前,必须将当前线程设