C语言常用函数.docx
《C语言常用函数.docx》由会员分享,可在线阅读,更多相关《C语言常用函数.docx(21页珍藏版)》请在冰豆网上搜索。
![C语言常用函数.docx](https://file1.bdocx.com/fileroot1/2022-11/24/5e072f50-738e-4a3e-805d-2de16951c575/5e072f50-738e-4a3e-805d-2de16951c5751.gif)
C语言常用函数
数学函数
数学函数的原型math.h中
数学函数表
函数名称
函数与型参类型
函数功能
返回值
acos
doubleacos(x)
doublex;
计算cos-1(x)的值
-1<=x<=1
计算结果
asin
doubleasin(x)
doublex;
计算sin-1(x)的值
1<=x<=1
计算结果
atan
doubleatan(x)
doublex;
计算tan-1(x)的值
计算结果
atan2
doubleatan2(x,y)
doublex;
计算tan-1(x/y)的值
计算结果
cos
doublecos(x)
doublex;
计算cos(x)的值
x的单位为弧度
计算结果
cosh
doublecosh(x)
doublex;
计算x的双曲余弦cosh的值
计算结果
exp
doubleexp(x)
doublex;
求ex的值
计算结果
fabs
doublefabs(x)
doublex;
求x的绝对值
计算结果
floor
doublefloor(x)
doublex;
求不大于x的最大整数
该整数的双精度实数
fmod
doublefmod(x,y)
doublex,y;
求整除x/y的余数
返回余数的双精度实数
frexp
doublefrexp(val,eptr)
doubleval;
int*eptr
把双精度数val分解为数字部分(尾数)和以2为底的指数n,即val=x*2n,n存放在eptr指向的变量中
数字部分x
0.5<=x<1
log
doublelog(x)
doublex;
求logex即lnx
计算结果
log10
doublelog10(x)
doublex;
求log10x
计算结果
modf
doublemodf(val,iptr)
doubleval;
double*iptr
把双精度数val分解为整数部分和小数部分,把整数部分存到iptr指向的单元
val的小数部分
pow
doublepow(x,y)
doublex,y
计算xy的值
计算结果
sin
doublesin(x)
doublex;
计算sin(x)的值
x的单位为弧度
计算结果
函数名称
函数与行参类型
函数功能
返回值
sinh
doublesinh(x)
doublex;
计算x的双曲线正弦函数sinh(h)的值
计算结果
sprt
doublesprt(x)
doublex;
计算
(x>=0)
计算结果
tan
doubletan(x)
doublex;
计算tan(x)的值
x位为弧度
计算结果
tanh
doubletanh(x)
doublex;
计算x的双曲线正切函数tanh(x)的值
计算结果
字符函数
字符函数原型在ctype.h中
字符函数表
函数名称
函数与行参类型
函数功能
返回值
isalnum
intisalnum(ch)
intch;
检查ch是否字母或数字
是字母或数字返回;否则返回0
isalpha
intisalpha(ch)
intch;
检查ch是否字母
是字母返回1;则返回0
iscntrl
intiscntrl(ch)
intch;
检查ch是否控制字母(其ASCII码在0和0xlf之间)
是控制字符,返回1;否则返回0
isdigit
intisdigit(ch)
intch;
检查ch是否数字(0~9)
是数字返回1;否则返回0
isgraph
intisgraph(ch)
intch;
检查ch是否是可打印字符(其ASII码在0×21到0×7e之间)不包括空格
是打印字符返回1;否则返回0
islower
intislower(ch)
intch
检查ch是否是小写字母(a~z)
是小写字母返回1;否则返回0
isprint
intisprint(ch)
intch
检查ch是否可打印字符(不包括空格),其ASCII码值在0×21到0×7e之间
是可打印字符,返回1;否则返回0
isspace
intisspace(ch)
intch;
检查ch是否空格、跳格符(制表符)或换行符
是,返回1;否则返回0
函数名称
函数与行参类型
函数功能
返回值
isupper
intisupper(ch)
intch;
检查ch是否大写字母(A~Z)
是大写字母,返回1;否则返回0
isxdigit
intisxdigit(ch)
intch
检查ch是否一个十六进制数字(即0~9,或A~F,a~f)
是,返回1;否则返回0
tolower
inttolower(ch)
intch
将ch字符转换为小写字母
返回ch对应的小写字母
toupper
inttoupper(ch)
intch
将ch字符转换为大写字母
返回ch对应的大写字母
字符串函数
字符串函数原型在string.h中
字符串函数表
函数名称
函数与行参类型
函数功能
返回值
memchr
voidmemchr(buf,ch,count)
void*buf;charch;
Unsignedintcount;
在buf的前count个字符里搜索字符ch首次出现的位置
返回值指向buf中ch第一次出现的位置指针;若没有找到ch返回NULL
memcmp
intmemcmp(buf1,buf2,count)
void*buf1,*buf2;
unsignedintcount
按字典顺序比较由buf1和buf2指向数组的前count个字符
buf1buf1=buf2;返回0;
buf1>buf2;为正数;
memcpy
void*memcpy(to,from,count)
void*to,*from;
unsignedintcount;
将from指向数组中的前count个字符拷贝到to指向的数组中,from和to指向的数组不允许重叠
返回指向to的指针
mem-
move
void*mem-move(to,from,count)
void*to,*from;
unsignedintcount;
将from指向的数组中的前count个字符拷贝到to指向的数组中,from和to指向的数组可以允许重叠
返回指向to的指针
memset
void*memset(buf,ch,count)
void*buf;charch;
unsignedintcount;
将字符ch拷贝到buf所指向的数组的前count个字符串
返回buf
stcat
char*strcat(str1,str2)
char*str1,*str2;
把字符串str2街道str1后面,取消原来的str1最后面的串结束符'\0'
返回str1
函数名称
函数与行参类型
函数功能
返回值
strchr
char*strchr(str,ch)
char*str;
intch;
找出str指向的字符串中第一次出现字符ch的位置。
返回指向该位置的指针,若找不到,则应返回NULL。
strcmp
intstrcmp(str1,str2)
char*str1,*str2;
比较字符串str1和str2
str1str1=str2;返回0;
str1>str2;为正数;
strcpy
char*strcpy(str1,str2)
char*str1,*str2;
把str2指向的字符串拷贝到str1中去
返回str1
strlen
unsignedintstrlen(str)
char*str;
统计字符串str中字符的个数(不包括终止符'\0')
返回字符个数
strncat
char*strncat(str1,str2,count)
char*str1,*str2;
Unsignedintcount;
把字符串str2指向的字符串中最多count个字符连到串str1后面,并以NULL结尾
返回str1
strncmp
intstrncmp(str1,str2,count)
char*str1,*str2;
unsignedintcount;
比较字符串str1和str2中最多的前count字符
str1str1=str2;返回0;
str1>str2;为正数;
strncpy
char*strncpy(str1,str2,count)
char*str1,*str2;
unsignedintcount;
把Str2指向的字符串中最多前count个字符拷贝到串str1中去
返回str1
strnset
char*setnset(buf,ch,count)
char*buf;charch;
unsignedintcount;
将字符ch拷贝到buf所指向的数组的前count个字符串中
返回buf
strset
char*strset(buf,ch)
char*buf;charch;
将buf所指向字符串中的全部字符都变为ch
返回buf
strstr
char*strstr(str1,str2)
char*str1,*str2;
寻找str2指向的字符串在str1指向的字符串中首次出现的位置
反回str2指向的子串首次出现的地址,否则返回NULL
输入输出函数
输入输出函数原型在stdio.h中
输入输出函数表
函数名称
函数与行参类型
函数功能
返回值
Clearerr
voidclearerr(fp)
FILE*FP;
清除文件指针错误
无
函数名称
函数与行参类型
函数功能
返回值
close
intclose(fp)
intfp;
关闭文件(非ANSI标准)
关闭成功返回0,不成功返回-1
creat
intcreat(filename,mode)
char*filename;
intmode;
以mode所指定的方式建立文件(非ANSI标准)
成功则返回正数,否则返回-1
eof
ineof(fd)
intfd;
判断文件(非ANSI标准)是否结束
遇文件结束,返回1;否则返回0
fclose
intfclose(fp)
FILE*fp;
关闭fp所指的文件,释放文件缓冲区
关闭成功返回0;否则返回非0
feof
intfeof(fp)
FILE*fp;
检查文件是否结束
遇文件结束返回非0;否则返回0
ferror
intfrrrorfp)
FILE*fp;
测试fp所指的文件是否有错误
无错误返回;否则返回非0
fflush
intfflush(fp)
FILE*FP;
将fp所指的文件的控制信息和数据存盘
存盘正确返回0;否则返回非0
fgetc
infgetc(fp)
FILE*fp;
从fp指向的文件中取得下一个字符
返回得到的字符。
若出错返回EOF
fgets
char*fgets(buf,n,fp)
char*buf;intn;
FILE*fp;
从fp指向的文件读取一个长度为(n-1)的字符串,存入起始地址为buf空间
返回地址buf,若遇文件结束或出错,则返回EOF
fopen
FILE*fopen(filename,mode)
char*filename.*mode;
以mode指定的方式打开名为filename文件
成功,返回一个文件指针;否则返回0
fprintf
intfprintf(fp,format,args,…)
FILE*fp;
char*format;
把args的值以format指定的格式输出到fp所指定的文件中
实际输出的字符数
fputc
intfputc(ch,fp)
charch;
FILE*FP;
将字符ch输出到fp指向的文件中
成功,则返回该字符,否则返回EOF
fputs
intfputs(str,fp)
charstr;
FILE*fp;
将str所指定的字符串输出到fp指定的文件中
成功返回0,若出错返回EOF
fread
intfread(pt,size,n,fp)
char*pt;
unsignedsize;
unsignedn;
FILE*fp;
从fp所指定的文件中读取长度为size的n个数据项,存到pt所指向的内存区
返回所读的数据项个数,如遇文件结束或出错,返回0
fscanf
intfscan(fp,format,args,…)
FILE*fp;
charformat;
从fp指定的文件中按给定的for-mat格式将读入的数据送到args所指向的内存变量中(args是指针)
已输入的数据个数
函数名称
函数与行参类型
函数功能
返回值
fseek
intfseek(fp,offset,base)
FILE*fp;
longoffset;
intbase;
将fp所指向的文件的位置指针移到base所指出的位置为基准,以offset为offset为位移量的位置
返回当前位置,否则返回返回-1
ftell
longftell(fp)
FILE*fp;
返回fp所指向的文件中的读写位置
返回文件中的读写位置,否则返回0
fwrite
intfwrite(ptr,size,n,fp)
char*ptr;
FILE*fp;
unsignedsize,n;
把ptr所指向的n*size个字节输出到fp所指向的文件中
写到fp文件中的数据项的个数
getc
intgetc(fp)
FILE*fp
从fp指向的文件中读入下一个字符
返回读入的字符;若文件结束后或出错返回EOF
getchar
intgetchar()
从标准输入设备读取下一个字符
返回字符,r若文件结束或出错返回-1
gets
char*gets(str)
char*str;
从标准输入设备读取字符串存入str指向的数组
成功返回指针str,否则返回NULL
open
intopen(filename,mode)
char*filename;
intmode;
以mode指定的方式打开已存在的名为filename的文件(非ANSI标准)
返回文件号(正数);若文件打开失败,返回-1
printf
intprintf(format,args,…)
char*format;
在format指定的字符串的控制下,将输出列表args的值输出到标准输出设备
输出的字符个数。
若出错,否则返回负数
putc
intputc(ch,fp)
intch;
FILE*fp;
把一个字符ch输出到fp所指的文件中
输出的字符ch,若出错,返回EOF
putchar
intputchar(ch)
charch;
把字符ch输出到标准的输出设备
输出字符ch,若出错,则返回EOF
puts
intputs(str)
char*str;
把str指向的字符串输出到标准输出设备,将'\0'转换为回车换行
返回换行符,若失败,返回EOF
putw
intpuw(w,fp)
intI;
FILE*fp;
将一个整数I(即一个字)写到fp所指的文件(非ANSI标准)中
返回输出整数;若出错,返回EOF
read
intread(fd,buf,count)
intfd;
char*buf;
unsignedintcount;
从文件号fd所指示的文件(非ANSI标准)中读count个字节到buf指示的缓冲区中
返回真读入的字节个数,如遇文件结束返回0,出错返回-1
函数名称
函数与行参类型
函数功能
返回值
remove
intremove(fname)
char*fname;
删除fname为文件名的文件
成功返回0,出错返回-1
rename
intrename(oname,nname)
char*oname,*nname;
把oname所指的文件名改为由nname所指的文件名
成功返回0;出错返回-1
rewind
voidrewind(fp)
FILE*fp;
将fp指定的文件指针置于文件头,并清除文件结束标志和错误标志
成功返回0;出错返回非零值
scanf
intscanf(format,args,…)
char*format;
从标准输入设备按format指示的格式字符串规定的格式,输入数据给args所指示的单元。
Args为指针
读入并赋给args数据个数。
遇文件结束返回EOF;若出错返回0
write
inrwrite(fd,buf,count)
intfd;
char*buf;
unsignedcount;
从buf指示的缓冲区输出count个字符到fp所指的文件(非ANSI标准)中
返回实际输出的字节数,如出错返回-1
动态存储分配函数
动态存储分配函数的远型在stdlib.h中
动态存储分配函数表
函数名称
函数与行参类型
函数功能
返回值
calloc
void*calloc(n,size)
unsignedn;
unsignedsize;
分配n个数据项的内存连续空间,每个数据项的大小为size
分配内存单元的起始地址,若不成功,返回0
free
voidfree(p)
void*p;
释放p所指的内存区
无
malloc
void*malloc(size)
unsignedsize;
分配size字节的内存区
所分配的内存区地址,如内存不够,返回0
realloc
void*realloc(p,size)
void*p;
unsignedsize
将p所指的已分配的内存区的大小改为size,size可以比原来分配的空间大或小
返回指向该内存区的指针。
若重新分配失败,返回NULL
其他函数
“其他函数”是C语言的标准库函数,由于不便归入某一类,所以单独列出。
函数的原型在stdlib,h中
其他函数表
函数名称
函数与行参类型
函数功能
返回值
abs
intabs(num)
intnum;
计算整数num的绝对值
返回计算结果
atof
doubleatof(str)
char*str;
将str指向的字符串转换为一个double型的值
返回双精度计算结果
atoi
intatoi(str)
char*str;
将str指向的字符串转换为一个int型的整数
返回转换结果
atol
longatol(str)
char*str;
将str所指向的字符串转换一个long型的整数
返回转换结果
exit
voidexit(status)
intstatus;
终止程序运行。
将status的值返回调用的过程
无
itoa
char*itoa(n,str,radix)
intn,radix;
char*str
将整数n的值按照radix进制转换为等价的字符串,并将结果存入str指向的字符串中
返回一个指向str的指针
labs
longlabs(num)
lognum
计算长整数num的绝对值
返回计算结果
ltoa
char*ltoa(n,str,radix)
longintn;
intradix;
char*str;
将长整数n的值按照radix进制转换为等价的字符串,并将结果存入str指向的字符串中
返回一个指向str的指针
rand
intrand()
产生0到RAND-MAX
之间的伪数。
RAND-MAX在头文件中定义。
返回一个伪随机(整)数
random
intrandom(num)
intnum;
产生0到num之间的随机数
返回一个随机(整)数
Random-
ize
voidrandomize()
初始化随机函数。
使用时要求包含头文件time.h
无
system
intsysten(str)
char*str;
将str所指向的字符串作为命令传递DOS的命令处理器
返回所执行命令的退出状态
函数名称
函数与行参类型
函数功能
返回值
strod
doublestrtod(start,end)
char*start;
char**end;
将start指向的数字字符串转换成double,直到出现不能转换为浮点数的字符为止,剩余的字符串赋给指针end*HUGE-VAL是turboC在头文件math.h中定义的数学函数溢出标志值
返回转换结果。
若未转换则返回0。
若转换出错,返回HUGE—VAL表示上溢,或返回-HUGE—VAL表示下溢
strtol
longintstrtol(start,end,radix)
char*start;
char**end;
intradix
将start指向的数字字符串转换成long,直到出现不能转换为长整型数的字符为止,剩余的字符串赋给指针end。
转换时,数字的进制由radix确定。
*LONG-MAX是turboC在头文件limits.h中定义的long型可表示的最大值
返回转换结果。
若未转换则返回0。
若转换出错,返回LONG—VAL表示上溢,或返回-LONG—VAL表示下溢
运算符及其结合性
优先级
运算符
含义
要求操作数的个数
结合性
1
()
圆括号
1(单止运算符)
左结合性
(从左向右)
[]
下标运算符
2(双目运算符)
—>
箭头运算符
.
圆点运算符
2
!
逻辑非运算符
1(单目运算符)
右结合性
(从右向左)
~
按位取反运算符
++
自增运算符
——
自减运算符
—
负号运算符
(类型)
强制类型转换运算符
*
指针间接引用运算符
&
取地址运算符
sizeof
取占内存大小运算符
优先级
运算符
含义
要求操作数的个数
结合性
3
*
乘法运算符
2(双目运算符)
左结合性