常用C库函数

来源:互联网 发布:tomcat1和apache整合 编辑:程序博客网 时间:2024/05/21 08:58

1 字符处理函数

所在函数库为ctype.h

      函数原型                                      说明

int isalpha(int ch)          判断ch是否是字母,若是字母返回非0值,否则返回0

int isalnum(int ch)           判断ch是否是字母或数字,若是字母或数字返回非0值,否则返回0

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

int iscntrl(int ch)          判断ch是否是控制字符,若ch是作废字符(0x7F)或普通控制字符

(0x00-0x1F)返回非0值,否则返回0

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

int isgraph(int ch)          判断ch是否是可显示字符,若字符(0x21-0x7E)返回非0值,否则返

0

int islower(int ch)          判断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是大写字母返回非0值,否则返回0

int isxdigit(int ch)         若ch是16进制数返回非0值,否则返回0
int tolower(int ch)          若ch是大写字母返回相应的小写字母

int toupper(int ch)          若ch是小写字母返回相应的大写字母

 

2  数学函数

所在函数库为math.h、stdlib.h、string.h、float.h

      函数原型                                      说明

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)        返回xy的值
double pow10(int p)                    返回10p的值
double  sqrt(double x)                 返回x的开方
double  acos(double x)                 返回x的反余弦cos(x)值,x为弧度
double  asin(double x)                 返回x的反正弦sin-1x)值,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为直角边的长度
double  ceil(double x)                返回不小于x的最小整数
double floor(double x)                返回不大于x的最大整数
void   srand(unsigned seed)           初始化随机数发生器
int     rand()                        产生一个随机数并返回这个数
double  poly(double x,int n,double c[])

以形参数组C的元素为系数产生一个n阶多项式,代入x

的值计算该多项式的结果并返回
double  modf(double value,double *iptr)

将双精度数value分解成整数和小数部分,整数部分

存入iptr指向的单元,函数返回值为小数部分
double  fmod(double x,double y)       返回x/y的余数
double frexp(double value,int *eptr)  将双精度数value分成尾数和阶(以2为底)
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转换成长整型数,并返回这个数,

 

3         字符串处理函数

所用函数库为string.h

      函数原型                                      说明

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返回负数,s1=s2

返回0,s1>s2返回正数
char   *strcpy(char *dest,const char *src)

将字符串src复制到dest
char   *strdup(const char *s)             将字符串s复制到新建立的内存区域,并返回该区域

首地址
int    stricmp(const char *s1,const char *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   *strset(char *s,int ch)            将一个字符串s中的所有字符置于一个给定的字符ch
char   strupr(char *s)                    将字符串s中的小写字母全部转换成大写字母,并返回

转换后的字符串

 

4  输入输出函数

函数库为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退回给标准输入设备
int   scanf(char *format[,argument…])

从标准输入设备按format指定的格式输入数据赋给argument指

向的单元
int   cscanf(char *format[,argument…]) 

直接从控制台(键盘)读入数据
int   puts(char *string)        发送一个字符串string给标准输出设备
void  cputs(char *string)       发送一个字符串string给控制台(显示器),直接对控制台作操作,

比如显示器即为直接写频方式显示
int   printf(char *format[,argument,…])

发送格式化字符串输出给标准输出设备

int   cprintf(char *format[,argument,…])

发送格式化字符串输出给控制台(显示器),直接对控制台作操作,

比如显示器即为直接写频方式显示

int   open(char *pathname,int access[,int permiss])

为读或写打开一个文件, 按access来确定是读文件还是写文

件,permiss为文件属性,可为以下值:
       S_IWRITE允许写  S_IREAD允许读  S_IREAD|S_IWRIT

int   creat(char *filename,int permiss) 

                    建立一个新文件filename,并设定文件属性,如果文件已经存在,

则清除文件原有内容
int   creatnew(char *filenamt,int attrib)

建立一个新文件filename,并设定文件属性,如果文件已经存在,

则返回出错信息。attrib为文件属性,可以为以下值

FA_RDONLY只读  FA_HIDDEN隐藏  FA_SYSTEM系统

int   read(int handle,void *buf,int nbyte)

从文件号为handle的文件中读nbyte个字符存入buf中

int   write(int handle,void *buf,int nbyte)

buf中的nbyte个字符写入文件号为handle的文件中

int   eof(int *handle)          检查文件是否结束,结束返回1,否则返回0
long  filelength(int handle)    返回文件长度,handle为文件号
int   setmode(int handle,unsigned mode)

本函数用来设定文件号为handle的文件的打开方式
long  lseek(int handle,long offset,int fromwhere)

本函数将文件号为handle的文件的指针移到fromwhere后的第

offset个字节处. 

long  tell(int handle)          本函数返回文件号为handle的文件指针当前位置,以字节表示
int   lock(int handle,long offset,long length)

                  对文件共享作封锁
int   unlock(int handle,long offset,long length)           打开对文件共享的封锁

      函数原型                                      说明

int   close(int handle)

关闭handle所表示的文件处理,成功返回0否则返回-1,可用于

UNIX系统
FILE *fopen(char *filename,char *type)

打开一个文件filename,打开方式为type,并返回这个文件指针

int   getc(FILE *stream)        从流stream中读一个字符,并返回这个字符
int   putc(int ch,FILE *stream) 向流stream写入一个字符ch
int   getw(FILE *stream)        从流stream读入一个整数,错误返回EOF
int   putw(int w,FILE *stream)  向流stream写入一个整数
int   ungetc(char c,FILE *stream)

把字符c退回给流stream,下一次读进的字符将是c
int   fgetc(FILE *stream)       从流stream处读一个字符,并返回这个字符
int   fputc(int ch,FILE *stream)        

将字符ch写入流stream中
char *fgets(char *string,int n,FILE *stream)       

从流stream中读n个字符存入string中

int   fputs(char *string,FILE *stream)           

将字符串string写入流stream中
int   fread(void *ptr,int size,int nitems,FILE *stream)

从流stream中读入nitems个长度为size的字符串存入ptr中
int   fwrite(void *ptr,int size,int nitems,FILE *stream)

向流stream中写入nitems个长度为size的字符串,字符串在ptr


int   fscanf(FILE *stream,char *format[,argument,…])

以格式化形式从流stream中读入数据
int   fprintf(FILE *stream,char *format[,argument,…]) 

以格式化形式将一个字符串写给指定的流stream

int   fseek(FILE *stream,long offset,int fromwhere)

函数把文件指针移到fromwhere 所指位置的向后offset个字节

,fromwhere可以为以下值:

SEEK_SET 文件开关   SEEK_CUR 当前位置   SEEK_END 文件尾

long  ftell(FILE *stream)       函数返回定位在stream中的当前文件指针位置,以字节表示
int   rewind(FILE *stream)      将当前文件指针stream移到文件开头
int   feof(FILE *stream)        检测流stream上的文件指针是否在结束位置
int   ferror(FILE *stream)      检测流stream上是否有读写错误,如有错误就返回1
void  clearerr(FILE *stream)    清除流stream上的读写错误
int   fclose(FILE *stream)      关闭一个流,可以是文件或设备(例如LPT1)
int   fcloseall()               关闭所有除stdin或stdout外的流

 

 

 

 

 

 

 

 

5  存储分配函数存贮分配子程序

所在函数库为dos.h、alloc.h、malloc.h、stdlib.h、process.h

      函数原型                                      说明

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为

新的长度,返回分配好的内存指针.

 

原创粉丝点击