2024年1月5日发(作者:王小九做数学试卷)

附录CC语言常用的库函数

库函数并不是C语言的一部分,它是由编译系统根据一般用户的需要编制并提供给用户使用的一组程序。每一种C编译系统都提供了一批库函数,不同的编译系统所提供的库函数的数目和函数名以及函数功能是不完全相同的。ANSIC标准提出了一批建议提供的标准库函数。它包括了目前多数C编译系统所提供的库函数,但也有一些是某些C编译系统未曾实现的。考虑到通用性,本附录列出ANSIC建议的常用库函数。

由于C库函数的种类和数目很多,例如还有屏幕和图形函数、时间日期函数、与系统有关的函数等,每一类函数又包括各种功能的函数,限于篇幅,本附录不能全部介绍,只从教学需要的角度列出最基本的。读者在编写C程序时可根据需要,查阅有关系统的函数使用手册。

1.数学函数

使用数学函数时,应该在源文件中使用预编译命令:

#include或#include\"math.h\"

函数函数原型 功能

acos

asin

atan

atan2

cos

cosh

exp

fabs

doubleacos(doublex); 计算arccosx的值,其中-1<=x<=1

doubleasin(doublex); 计算arcsinx的值,其中-1<=x<=1

doubleatan(doublex); 计算arctanx的值

doubleatan2(doublex,doubley);

doublecos(doublex);

计算arctanx/y的值

返回值

计算结果

计算结果

计算结果

计算结果

计算cosx的值,其中x的单位为弧度 计算结果

计算结果

计算结果

计算结果

doublecosh(doublex); 计算x的双曲余弦coshx的值

doubleexp(doublex); 求ex的值

doublefabs(doublex); 求x的绝对值

doublefloor(doublex)floor

;

fmod

doublefmod(doublex,doubley);

doublefrexp(doubleval,int*eptr);

doublelog(doublex);

doublelog10(doublex);

doublemodf(doubleval,int*iptr);

frexp

log

log10

modf

该整数的求出不大于x的最大整数 双精度实数

返回余数求整除x/y的余数 的双精度实数

把双精度数val分解成数字部分(尾数字部分n数)和以2为底的指数,即val=x*2,nx

存放在eptr指向的变量中 0.5<=x<1

求lnx的值

求log10x的值

把双精度数val分解成数字部分和小数部分,把整数部分存放在ptr指向的变量中

计算结果

计算结果

val的小数部分

pow

sin

sinh

sqrt

tan

tanh

doublepow(doublex,doubley);

doublesin(doublex);

求xy的值

求sinx的值,其中x的单位为弧度

计算结果

计算结果

计算结果

计算结果

doublesinh(doublex); 计算x的双曲正弦函数sinhx的值

doublesqrt(doublex);

计算x,其中x≥0

doubletan(doublex); 计算tanx的值,其中x的单位为弧度 计算结果

计算结果 doubletanh(doublex); 计算x的双曲正切函数tanhx的值

2.字符函数

在使用字符函数时,应该在源文件中使用预编译命令:

#include或#include\"ctype.h\"

函数名

isalnum

函数原型 功能

检查ch是否字母或数字

检查ch是否字母

检查ch是否控制字符(其ASCII码在0和0xlF之间)

检查ch是否数字

检查ch是否是可打印字符(其ASCII码在0x21和0x7e之间),不包括空格

检查ch是否是小写字母(a~z)

检查ch是否是可打印字符(其ASCII码在0x21和0x7e之间),不包括空格

检查ch是否是标点字符(不包括空格)即除字母、数字和空格以外的所有可打印字符

检查ch是否空格、跳格符(制表符)或换行符

检查ch是否大写字母(A~Z)

检查ch是否一个16进制数字

(即0~9,或A到F,a~f)

将ch字符转换为小写字母

返回值

是字母或数字返回1,否则返回0

是字母返回1,否则返回0

是控制字符返回1,否则返回0

是数字返回1,否则返回0

是可打印字符返回1,否则返回0

是小字母返回1,否则返回0

是可打印字符返回1,否则返回0

是标点返回1,否则返回0

是,返回1,否则返回0

是大写字母返回1,否则返回0

是,返回1,否则返回0

intisalnum(intch);

intisalpha(intch)isalpha

;

intiscntrl(intch)iscntrl

;

isdigit

intisdigit(intch);

intisgraph(intch)isgraph

;

islower

isprint

intislower(intch);

intisprint(intch);

intispunct(intch);

ispunct

intisspace(intch);

intisupper(intch)isupper

;

isspace

isxdigit

intisxdigit(intch);

inttolower(intch);

tolower 返回ch对应的小写字母

toupper

inttoupper(intch);

将ch字符转换为大写字母

返回ch对应的大写字母

3.字符串函数

使用字符串中函数时,应该在源文件中使用预编译命令:

#include或#include\"string.h\"

函数名 函数原型 功能 返回值

voidmemchr(void*buf在buf的前count个字返回指向buf中ch的第memchr ,charch,unsignedcou符里搜索字符ch首次一次出现的位置指针。若nt); 出现的位置 没有找到ch,返回NULL

intmemcmp(void*buf1按字典顺序比较由buf1

memcmp ,void*buf2,unsignedbuf1和buf2指向的数buf1=buf2,返回0

count); 组的前count个字符 buf1>buf2,为正数

将from指向的数组中void*memcpy(void*to的前count个字符拷贝memcpy ,void*from,unsigned到to指向的数组中。返回指向to的指针

count); From和to指向的数组不允许重叠

将from指向的数组中void*memove(void*to的前count个字符拷贝memove ,void*from,unsigned到to指向的数组中。返回指向to的指针

count); From和to指向的数组不允许重叠

void*memset(void*bu将字符ch拷贝到bufmemset f,charch,unsignedco指向的数组前count个返回buf

unt); 字符中。

把字符str2接到str1char*strcat(char*st后面,取消原来str1strcat 返回str1

r1,char*str2); 最后面的串结束符“0”

找出str指向的字符串char*strchr(char*st返回指向该位置的指针,strchr 中第一次出现字符chr,intch); 如找不到,则应返回NULL

的位置

若str1

int*strcmp(char*str比较字符串str1和strcmp 若str1=str2,返回0

1,char*str2); str2

若str1>str2,为正数

strcpy

char*strcpy(char*str1,char*str2);

把str2指向的字符串拷贝到str1中去

返回str1

unsignedintstrlen(cstrlen

har*str);

char*strncat(char*sstrncat tr1,char*str2,unsignedcount);

统计字符串str中字符的个数(不包括终止符返回字符个数

“0”)

把字符串str2指向的字符串中最多count个返回str1

字符连到串str1后面,并以NULL结尾

intstrncmp(char*strstrncmp 1,*str2,unsignedcount);

char*strncpy(char*sstrncpy tr1,*str2,unsignedcount);

void*setnset(char*bstrnset uf,charch,unsignedcount);

strset

void*setset(void*buf,charch);

char*strstr(char*ststrstr

r1,*str2);

4.输入输出函数

比较字符串str1和str2中至多前count个字符

把str2指向的字符串中最多前count个字符拷贝到串str1中去

将字符ch拷贝到buf指向的数组前count个字符中。

将buf所指向的字符串中的全部字符都变为字符ch

寻找str2指向的字符串在str1指向的字符串中首次出现的位置

若str1

若str1=str2,返回0

若str1>str2,为正数

返回str1

返回buf

返回buf

返回str2指向的字符串首次出向的地址。否则返回NULL

在使用输入输出函数时,应该在源文件中使用预编译命令:

#include或#include\"stdio.h\"

函数名 函数原型 功能

clearerr

close

creat

eof

fclose

feof

ferror

fflush

voidclearer(FILE*fp);

intclose(intfp);

intcreat(char*filename,intmode);

inteof(intfp);

intfclose(FILE*fp);

清除文件指针错误指示器

关闭文件(非ANSI标准)

以mode所指定的方式建立文件(非ANSI标准)

判断fp所指的文件是否结束

关闭fp所指的文件,释放文件缓冲区

返回值

intfeof(FILE*fp); 检查文件是否结束

intferror(FILE*fp);

intfflush(FILE*fp);

测试fp所指的文件是否有错误

将fp所指的文件的全部控制信息和数据存盘

从fp所指的文件读取一char*fgets(char*b个长度为(n-1)的字符uf,intn,FILE*fp); 串,存入起始地址为buf的空间

intfgetc(FILE*fp)从fp所指的文件中取得; 下一个字符

FILE*fopen(char*f以mode指定的方式打开ilename,char*mode名为filename的文件

);

关闭成功返回0,不成功返回-1

成功返回正数,否则返回-1

文件结束返回1,否则返回0

关闭成功返回0,不成功返回非0

文件结束返回非0,否则返回0

无错返回0,否则返回非0

存盘正确返回0,否则返回非0

返回地址buf。若遇文件结束或出错则返回EOF

返回所得到的字符。出错返回EOF

成功,则返回一个文件指针,否则返回0

fgets

fgetc

fopen

fprintf

fputc

fputs

intfprintf(FILE*fp,char*format,args,…);

intfputc(charch,FILE*fp);

intfputs(charstr,FILE*fp);

fread

fscanf

fseek

ftell

fwrite

getc

getchar

gets

open

printf

prtc

putchar

puts

把args的值以format指定的格式输出到fp所指的文件中

将字符ch输出到fp所指的文件中

将str指定的字符串输出到fp所指的文件中

从fp所指定文件中读取intfread(char*pt,长度为size的n个数据unsignedsize,unsi项,存到pt所指向的内gnedn,FILE*fp);

存区

从fp指定的文件中按给intfscanf(FILE*fp定的format格式将读入,char*format,args的数据送到args所指向,…); 的内存变量中(args是指针)

将fp指定的文件的位置intfseek(FILE*fp,指针移到base所指出的longoffset,intbas位置为基准、以offsete);

为位移量的位置

longftell(FILE*fp返回fp所指定的文件中); 的读写位置

intfwrite(char*pt把ptr所指向的n*sizer,unsignedsize,un个字节输出到fp所指向signedn,FILE*fp); 的文件中

从fp所指向的文件中的intgetc(FILE*fp);

读出下一个字符

从标准输入设备中读取intgetchar();

下一个字符

从标准输入设备中读取char*gets(char*st字符串存入str指向的r);

数组

以mode指定的方式打开intopen(char*file已存在的名为filenamename,intmode);

的文件(非ANSI标准)

在format指定的字符串intprintf(char*fo的控制下,将输出列表rmat,args,…); args的指输出到标准设备

intprtc(intch,FIL把一个字符ch输出到E*fp); fp所值的文件中

intputchar(charch把字符ch输出到fp标); 准输出设备

把str指向的字符串输intputs(char*str)出到标准输出设备,将;

“0”转换为回车行

实际输出的字符数

成功则返回该字符,出错返回EOF

成功则返回0,出错返回EOF

返回所读的数据项个数,若文件结束或出错返回0

以输入的数据个数

返回当前位置,否则返回-1

返回文件中的读写位置,否则返回0

写到fp文件中的数据项的个数

返回读出的字符,若文件出错或结束返回EOF

返回字符,若文件出错或结束返回-1

成功返回str,否则返回NULL

返回文件号(正数),如打开失败返回-1

输出字符的个数。若出错返回负数

输出字符ch,若出错返回EOF

返回换行符,若失败返回EOF

返回换行符,若失败返回EOF

putw

intputw(intw,FILE*fp);

intread(intfd,char*buf,unsignedcount);

intremove(char*fname);

intremove(char*oname,char*nname);

voidrewind(FILE*fp);

read

remove

rename

rewind

scanf

intscanf(char*format,args,…);

write

intwrite(intfd,char*buf,unsignedcount);

将一个整数i(即一个字)写到fp所指的文件中(非ANSI标准)

从文件号fp所指定文件中读count个字节到由buf知识的缓冲区(非ANSI标准)

删除以fname为文件名的文件

把oname所指的文件名改为由nname所指的文件名

将fp指定的文件指针置于文件头,并清除文件结束标志和错误标志

从标准输入设备按format指示的格式字符串规定的格式,输入数据给args所指示的单元。args为指针

丛buf指示的缓冲区输出count个字符到fd所指的文件中(非ANSI标准)

返回读出的字符,若文件出错或结束返回EOF

返回真正读出的字节个数,如文件结束返回0,出错返回-1

成功返回0,出错返回-1

成功返回0,出错返回-1

读入并赋给args数据个数。如文件结束返回EOF,若出错返回0

返回实际写入的字节数,如出错返回-1

5.动态存储分配函数

在使用动态存储分配函数时,应该在源文件中使用预编译命令:

#include或#include\"stdlib.h\"

函数名 函数原型 功能 返回值

callloc

free

malloc

void*calloc(unsignedn,unsignedsize);

分配n个数据项的内存分配内存单元的起始连续空间,每个数据项的地址。如不成功,返回大小为size 0

所分配的内存区地址,如内存不够,返回0

返回指向该内存区的指针。若重新分配失败,返回NULL

voidfree(void*p); 释放p所指内存区

void*malloc(unsignedsize);

分配size字节的内存区

realloc

将p所指的以分配的内void*realloc(void存区的大小改为size。*p,unsignedsize); size可以比原来分配的空间大或小

6.其他函数

有些函数由于不便归入某一类,所以单独列出。使用这些函数时,应该在源文件中使用预编译命令:

#include或#include\"stdlib.h\"

函数名 函数原型 功能 返回值

abs

atof

atoi

atol

exit

intabs(intnum);

doubleatof(char*str);

intatoi(char*str);

longatol(char*str);

voidexit(intstatus);

char*itoa(intn,char*str,intradix);

longlabs(longnum);

char*ltoa(longn,char*str,intradix);

计算整数num的绝对值 返回计算结果

将str指向的字符串转换返回双精度计算结为一个double型的值 果

将str指向的字符串转换返回转换结果

为一个int型的值

将str指向的字符串转换返回转换结果

为一个long型的值

中止程序运行。将status无

的值返回调用的过程

将整数n的值按照radix进制转换为等价的字符返回一个指向str串,并将结果存入str指的指针

向的字符串中

计算long型整数num的绝对值

将长整数n的值按照radix进制转换为等价的字符串,并将结果存入str指向的字符串

产生0到RAND_MAX之间的伪随机数。RAND_MAX在头文件中定义

返回计算结果

返回一个指向str的指针

返回一个伪随机(整)数

itoa

labs

ltoa

rand

random

intrand();

intrandom(intnum);

产生0到num之间的随机返回一个随机(整)数。 数

初始化随机函数,使用时

包括头文件time.h。

randomize voidrandomize();


更多推荐

返回,文件,函数,字符,指向,字符串,所指,出错