附录1 常用的C库函数
1. 数学函数
这些函数包含头在头文件“math.h”。数学函数
使用数学函数时,应在该源文件中使用: #include "math.h"
函数名 | 函数类型和形参类型 | 功能 | 返回值 | 说明 |
acos | double acos(x) double x; | 计算cos-1(x)的值 | 计算结果 | x应在-1到1范围内 |
asin | double asin(x) double x; | 计算sin-1(x)的值 | 计算结果 | x应在-1到1范围内 |
atan | double atan(x) double x; | 计算tan-1(x)的值 | 计算结果 | |
atan2 | double atan2(x,y) double x,y; | 计算tan-1(x/y)的值 | 计算结果 | |
cos | double cos(x) double x; | 计算cos(x)的值 | 计算结果 | x单位为弧度 |
cosh | double cosh(x) double x; | 计算x的双曲余弦cosh(x)的值 | 计算结果 | |
exp | double exp(x) double x; | 求ex的值 | 计算结果 | |
fabs | double fabs(x) double x; | 求x的绝对值 | 计算结果 | |
floor | double floor(x) double x; | 求出不大於x的最大整数 | 该整数的双精度实数 | |
fmod | double fmod(x,y) double x,y; | 求出整除x/y的余数 | 返回余数的双精度数 | |
frexp | double frexp(val,eptr) double val; int *eptr; | 把双精度数val分解为数字部份(尾数)x和以2为底的指数n,即val=x*2n,n存放在eptr指向的变量中 | 返回数字部份 | |
log | double log(x) double x; | 求logex,即lnx | 计算结果 | |
log10 | double log10(x) double x; | 求log10x | 计算结果 | |
modf | double modf(val,iptr) double valx; double *iptr; | 把双精度数val分解为整数部份和小数部份,把整数部份存到iptr指向的单元中 | val的小数部份 | |
pow | double pow(x,y) double x,y; | 计算xy的值 | 计算结果 | |
sin | double sin(x) double x; | 计算sinx的值 | 计算结果 | x的单位为弧度 |
sinh | double sinh(x) double x; | 计算x的双曲正弦函数 | 计算结果 | |
sqrt | double sqrt(x) double x; | 计算x的开方 | 计算结果 | x应≥0 |
tan | double tan(x) double x; | 计算tan(x)的值 | 计算结果 | x的单位为弧度 |
tanh | double tanh(x) double x; | 计算x的双曲正切函数值 | 计算结果 | |
2.字符函数和字符串函数
ANSI C标准要求在使用字符串函数时要包含头文件“string.h”,在使用字符函数时要包含头文件“ctype.h”。
函数名 | 函数类型和形参类型 | 功能 | 返回值 | 包含文件 |
isalnum | int isalnum(ch) int ch; | 检查ch是否是字母或数字 | 是字母返回1;否则返回0 | ctype.h |
isalpha | int isalpha(ch) int ch; | 检查ch是否是字母 | 是,返回1 不是返回0 | ctype.h |
iscntrl | int iscntrl(ch) int ch; | 检查ch是否控制字符 | 是,返回1 不是返回0 | ctype.h |
isdigit | int isdigit(ch) int ch; | 检查ch是否数字(0-9) | 是,返回1 不是返回0 | ctype.h |
isgraph | int isgraph(ch) int ch; | 检查ch是否可打印字符(其ASCⅡ码在0x21到0x7E之间),不包括空格 | 是,返回1 不是返回0 | ctype.h |
islower | int islower(ch) int ch; | 检查ch是否小写字母(a-z) | 是,返回1 不是返回0 | ctype.h |
isprint | int isprint(ch) int ch; | 检查ch是否可打印字符(其ASCⅡ码在0x20到0x7E之间),包括空格 | 是,返回1 不是返回0 | ctype.h |
ispunct | int ispunct(ch) int ch; | 检查ch是否标点字符(不包括空格),即除字母、数字和空格以外的所有可打印字符 | 是,返回1 不是返回0 | ctype.h |
isspace | int isspace(ch) int ch; | 检查ch是否空格,跳格符(制表符)或换行符 | 是,返回1 不是返回0 | ctype.h |
isupper | int isupper(ch) int ch; | 检查ch是否大写字母(A-Z) | 是,返回1 不是返回0 | ctype.h |
isxdigit | int isxdigit(ch) int ch; | 检查ch是否一个16进制数学字符(即0-9,或A到F,或a-f) | 是,返回1 不是返回0 | ctype.h |
strcat | char *strcat(str1,str2) char *str1,*str2 | 把字符串str2接到str1后面,str1最后的'\0'被取消 | str1 | string.h |
strchr | char *strchr(str,ch) char *str;int ch; | 指向str指向的字符串中第一次出现ch的位置 | 返回指向该位置的指针,如不到,则返回空指针 | string.h |
strcmp | int strcmp(str1,str2) char *str1,*str2; | 比较两个字符串str1、str2 | str1<str2,返回负数str1=str2,返回0 str1>str2,返回正数 | string.h |
strcpy | char *strcpy(str1,str2) char *str1,*str2; | 把str2指向的字符串拷贝到str1中去 | 返回str1 | string.h |
strlen | unsigned int strlen(str) char *str; | 统计字符串str中字符的个数(不包括终止符'\0') | 返回字符个数 | string.h |
strstr | char *strstr(str1,str2) char *str1,*str2; | 出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。 | 返回该位置的指针,如不到,返回空指针 | string.h |
tolower | int tolower(ch) int ch; | 将ch字符转换为小写字母 | 返回ch所代表的字符的小写字母 | ctype.h |
toupper | int toupper(ch) int ch; | 将ch字符转换为大写字母 | 返回ch所代表的字符的大写字母 | ctype.h |
2. 输入输出函数
凡用以下的输入输出函数,应该使用#include"stdio.h"把"stdio.h"头文件包含到源文件中。
函数名 | 函数类型和形参类型 | 功能 | 返回值 | 说明 |
clearerr | void clearerr(fp) file *fp; | 清除文件指针错误。指示器。 | 无 | |
close | int close(fp) int fp; | 关闭文件 | 关闭成功返回0,不成功返回-1 | 非ANSI标准 |
creat | int creat(filename,mode) char *filename; int mode; | 以mode所指定方式建立文件 | 成功返回正数否则返回-1 | 非ANSI标准 |
eof | int eof(fd) int fd; | 检查文件是否结束 | 遇文件结束,返回1否则返回0 | 非ANSI标准 |
fclose | int fclose(fp) FILE *fp; | 关闭fp所指的文件,释放文件缓冲区 | 有错则返回非0 否则返回0 | |
feof | int feof(fp) FILE *fp; | 检查文件是否结束 | 遇文件结束,返回非零值 否则返回0 | |
fgetc | int fgetc(fp) FILE *fp; | 从fp所指定的文件中取得下一个字符 | 返回所得到的字符,若读入出错,返回EOF | |
fgets | char *fgets(buf,n,fp) char *buf; int n; FILE *fp; | 从fp指向的文件读取一个长度为(n-1)的字符串,存入起始地址为buf的空间 | 返回地址buf,若遇文件结束或出错,返回NULL | |
fopen | FILE *fopen(filename,mode) char *filename,*mode; | 以mode指定的方式打开名为filename的文件 | 成功,返回一个文件指针 否则返回0 | |
fprintf | int fprintf(fp,format,args,...) FILE *fp; char *format; | 把args的值以format指定的格式输出到fp所指定的文件中 | 实际输出的字符数 | |
fputc | int fputc(ch,fp) char ch; FILE *fp | 将字符ch输出到fp指定的文件中 | 成功,则返回该字符,否则返回EOF | |
fputs | int fputs(str,fp) char *str; FILE *fp | 将str所指向的字符串输出到fp指定的文件中 | 返回0,出错返回非0 | |
fread | int fread(pt,size,n,fp) char *pt; unsigned size; unsigned n; FILE *fp; | 从fp所指定的文件中读取长度为size的n个数据项,存到pt所指向的内存区 | 返回所读的数据项个数,如遇文件结束或出错返回0 | |
fscanf | int fscanf(fp,format,args,...) FILE *fp; char format; | 从fp指定的文件中按format给定的格式将输入数据送到args所指向的内存单元 | 已输入的数据个数 | |
fseek | int fseek(fp,offset,base) FILE *fp; long offset; int base; | 将fp所指向的文件的位置指针移到以base所指出的位置为基准,以offset为位移量的位置 | 返回当前位置,否则,返回-1 | |
ftell | long ftell(fp) FILE *fp; | 返回fp所指向的文件中的读写位置 | 返回fp所指向的文件中的读写位置 | |
fwrite | int fwrite(ptr,size,n,fp) char *ptr; unsigned size; unsigned n; FILE *fp; | 把ptr所指向的n*size个字节输出到fp所指向的文件中 | 写到fp文件中的数据项的个数 | |
getc | int getc(fp) FILE *fp; | 从fp所指的文件中读入一个字符 | 返回所读的字符,若文件结束或出错,返回EOF | |
getchar | int getchar() | 从标准输入设备读取下一个字符 | 所读字符,若文件结束或出错,返回-1 | |
getw | int getw(fp) FILE *fp; | 从fp所指的文件中读取下一个字(整数) | 输入的整数。如文件结束或出错,返回-1 | |
open | int open(filename,mode) char *filename; int mode; | 以mode指定的方式打开已存在的名为filename的文件 | 返回文件号(正数)。如打开失败,返回-1。 | |
printf | int printf(format,args,...) char *format; | 将输出表列args的值输出到标准输出设备 | 输出字符的个数,若出错,返回负数 | format可以是一个字符串,或字符数组的起始地址 |
putc | int putc(ch,fp) int ch; FILE *fp; | 把一个字符ch输出到fp所指的文件中 | 输出的字符ch,若出错,返回EOF | |
putchar | int putchar(ch) char ch; | 把字符ch输出到标准输出设备 | 输出的字符ch,若出错,返回EOF | |
puts | int puts(str) char *str; | 把str指向的字符串输出到标准输出设备,将'\0'转换成回车换行 | 返回换行符,若出错,返回EOF | |
putw | int putw(w,fp) int w; FILE *fp; | 将一个整数w(即一个字)写到fp指向的文件中 | 返回输出的整数,若出错,返回EOF | 非ANSI标准函数 |
read | int read(fd,buf,count) int fd; char *buf; unsigned count; | 从文件号fd所指示的文件中读count个字节到由buf指示的缓冲区中 | 返回真正读入的字节个数,如遇文件结束返回0,出错返回-1 | 非ANSI标准函数 |
rename | inrename(oldname,newname) char *oldname,*newname; | 把由oldname所指的文件名,改为由newname所指的文件名 | 成功返回0 出错返回-1 | |
rewind | void rewind(fp) FILE *fp; | 将fp指示的文件中的位置指针置於文件开头位置,并清除文件结束标志和错误标志 | 无 | |
scanf | int scanf(format,args,...) char *format; | 从标准输入设备按format指向的格式字符串规定的格式,输入数据给args所指向的单元 | 读入并赋给args的数据个数。遇文件结束返回EOF,出错返回0 | args为指针 |
write | int write(fd,buf,count) int fd; char *buf; unsigned count; | 从buf指示的缓冲区输出count个字符到fd所标志的文件中 | 返回实际输出的字节数,出错返回-1 | 非ANSI标准函数 |
3. 动态存储分配函数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论