标签:字符 int void float C语言 char 字符串 库函数 大全
C语言作为影响力最为深远的语言之一,应用范围非常广泛。在一些对性能要求比较高的领域,C语言依然有不可撼动的地位。但是C语言标准库的函数比较多,很多时候我们要实现某个逻辑功能,不知道调用哪些函数。这时就不得不去查询对应的函数文档,这样比较费时。这里把大家能用到的几乎的所有的C语言库函数以表格的形式列出来,供大家参考。根据功能将C语言标准库函数分为:数学运算、文件和目录操作、事件和日期、进程操作、内存分配、字符串处理、系统函数、类型转换、绘图函数九类。下面以表格的形式分别介绍。
数学运算
主要的函数都定义在main.h文件中
函数原型 | 功能 |
float fabs(float x); | 求浮点数x的绝对值 |
int abs(int x); | 求整数x的绝对值 |
float acos(float x); | 求x(弧度表示)的反余弦值 |
float asin(float x); | 求x(弧度表示)的反正弦值 |
float atan(float x); | 求x(弧度表示)的反正切值 |
float atan2(float y, float x); | 求y/x(弧度表示)的反正切值 |
float ceil(float x); | 求不小于x的最小整数 |
float cos(float x); | 求x(弧度表示)的余弦值 |
float cosh(float x); | 求x的双曲余弦值 |
float exp(float x); | 求e的x次幂 |
float floor(float x); | 求不大于x的最达整数 |
float fmod(float x, float y); | 计算x/y的余数 |
float frexp(float x, int *exp); | 把浮点数x分解成尾数和指数。 |
float ldexp(float x, int exp); | 装载浮点数。 |
float modf(float num, float *i); | 将浮点数num分解成整数部分和小数部分 |
float hypot(float x, float y); | 对于给定的直角三角形的两个直角边,求其斜边的长度 |
float log(float x); | 计算x的自然对数 |
float log10(float x); | 计算x的常用对数 |
float pow(float x, float y); | 计算x的y次幂 |
float pow10(float x); | 计算10的x次幂 |
float sin(float x); | 计算x(弧度表示)的正弦值 |
float sinh(float x); | 计算x(弧度表示)的双曲正弦值 |
float sqrt(float x); | 计算x的平方根 |
float tan(float x); | 计算x(弧度表示)的正切值 |
float tanh(float x); | 求x的双曲正切值 |
double cabs(struct complex z); | 计算复数的绝对值 |
char *cgets(char *str); | 从控制台读字符串 |
div_t (int number, int denom); | 将两个整数相除, 返回商和余数 |
long dostounix(struct date *dateptr, struct time *timeptr); | 转换日期和时间为UNIX时间格式 |
void rand(void); | 随机数发生器 |
void randomize(void); | 初始化随机数发生器 |
文件和目录操作
函数原型 | 功能 |
int chdir(const char *path); | 改变工作目录 |
int chmod(const char *filename, int permiss); | 改变文件的访问方式 |
int chsize(int handle, long size); | 改变文件大小 |
void clearerr(FILE *stream); | 复位错误标志 |
int close(int handle); | 关闭文件句柄 |
int creat (const char *filename, int permiss); | 创建一个新文件或重写一个已存在的文件 |
int creatnew(const char *filename, int attrib); | 创建一个新文件 |
int dup(int handle); | 复制一个文件句柄 |
int eof(int *handle); | 检测文件结束 |
int fclose(FILE *stream); | 关闭一个流 |
int fcloseall(void); | 关闭打开流 |
FILE *fdopen(int handle, char *type); | 把流与一个文件句柄相接 |
int feof(FILE *stream); | 检测流上的文件结束符 |
int ferror(FILE *stream); | 检测流上的错误 |
int fflush(FILE *stream); | 清除一个流 |
int fgetc(FILE *stream); | 从流中读取字符 |
int fgetchar(void); | 从流中读取字符 |
int fgetpos(FILE *stream); | 取得当前文件的句柄 |
char *fgets(char *string, int n, FILE *stream); | 从流中读取一字符串 |
long filelength(int handle); | 取文件长度字节数 |
int findfirst(char *pathname, struct ffblk *ffblk, int attrib); | 搜索磁盘目录; 取得下一个匹配的findfirst模式的文件 |
int flushall(void); | 清除所有缓冲区 |
void fnerge(char *path, char *drive, char *dir); | 建立新文件名 |
FILE *fopen(char *filename, char *type); | 打开一个文件 |
int fprintf(FILE *stream, char *format[, argument,...]); | 传送格式化输出到一个流中 |
int fputc(int ch, FILE *stream); | 送一个字符到一个流中 |
int fputchar(char ch); | 送一个字符到标准输出流(stdout)中 |
int fputs(char *string, FILE *stream); | 送一个字符到一个流中 |
int fread(void *ptr, int size, int nitems, FILE *stream); | 从一个流中读数据 |
FILE *freopen(char *filename, char *type, FILE *stream); | 替换一个流 |
int fscanf(FILE *stream, char *format[,argument...]); | 从一个流中执行格式化输入 |
int fseek(FILE *stream, long offset, int fromwhere); | 重定位流上的文件指针 |
int fsetpos(FILE *stream, const fpos_t *pos); | 定位流上的文件指针 |
int fstat(char *handle, struct stat *buff); | 获取打开文件信息 |
long ftell(FILE *stream); | 返回当前文件指针 |
int fwrite(void *ptr, int size, int nitems, FILE *stream); | 写内容到流中 |
int getcurdir(int drive, char *direc); | 取指定驱动器的当前目录 |
char *getcwd(char *buf, int n); | 取当前工作目录 |
int getdisk(void); | 取当前磁盘驱动器号 |
void getfat(int drive, struct fatinfo *fatblkp); | 取文件分配表信息 |
int lock(int handle, long offset, long length); | 设置文件共享锁 |
long lseek(int handle, long offset, int fromwhere); | 移动文件读/写指针 |
int mkdir(char *pathname); | 建立一个目录 |
int read(int handle, void *buf, int nbyte); | 从文件中读 |
int remove(char *filename); | 删除一个文件 |
int rename(char *oldname, char *newname); | 重命名文件 |
int write(int handel, void *buf, int nbyte); | 写到一文件中 |
int vfprintf(FILE *stream, char *format, va_list param); | 送格式化输出到一流中 |
int vfscanf(FILE *stream, char *format, va_list param); | 从流中执行格式化输入 |
int vprintf(char *format, va_list param); | 送格式化输出到stdout中 |
int vscanf(char *format, va_list param); | 从stdin中执行格式化输入 |
int vsprintf(char *string, char *format, va_list param); | 送格式化输出到串中 |
int vsscanf(char *s, char *format, va_list param); | 从流中执行格式化输入 |
int unlock(int handle, long offset, long length); | 解除文件共享锁 |
long tell(int handle); | 取文件指针的当前位置 |
FILE *tmpfile(void); | 以二进制方式打开暂存文件 |
int setmode(int handle, unsigned mode); | 设置打开文件方式 |
int sopen(char *pathname, int access, int shflag, int permiss); | 打开一共享文件 |
事件和日期
函数原型 | 功能 |
clock_t clock(void); | 确定处理器时间 |
double difftime(time_t time2, time_t time1); | 计算两个时刻之间的时间差 |
void getdate(struct *dateblk); | 取DOS日期 |
int getftime(int handle, struct ftime *ftimep); | 取文件日期和时间 |
void gettime(struct time *timep); | 取得系统时间 |
struct tm *gmtime(long *clock); | 把日期和时间转换为格林尼治标准时间(GMT) |
struct tm *localtime(long *clock); | 把日期和时间转变为结构 |
void tzset(void); | UNIX时间兼容函数 |
logn time(long *tloc); | 取一天的时间 |
void settime(struct time *timep); | 设置系统时间 |
int setftime(int handle, struct ftime *ftimep); | 设置文件日期和时间 |
进程操作
函数原型 | 功能 |
int execl(char *pathname, char *arg0, arg1, ..., argn, NULL); | 装入并运行其它程序的函数 |
int raise(int sig); | 向正在执行的程序发送一个信号 |
void exit(int retval); | 结束程序 |
void abort(void); | 异常终止一个进程 |
内存分配
主要的函数都定义在alloc.h文件中
函数原型 | 功能 |
void *malloc(unsigned int num_bytes); | 分配长度为num_bytes字节的内存 |
void *calloc(int num_elems, int elem_size); | 为具有num_elems个长度为elem_size元素的数组分配内存 |
void *realloc(void *mem_address, unsigned int newsize); | 改变mem_address所指内存区域的大小为newsize长度 |
void free(void *p); | 释放指针p所指向的的内存空间 |
void far *farcalloc(unsigned long units, unsigned ling unitsz); long farcoreleft(void); void farfree(void); void far *farmalloc(unsigned long size); void far *farrealloc(void far *block, unsigned long newsize); | 对远堆内存进行操作 |
字符串处理
主要的函数都定义在string.h文件中
函数原型 | 功能 |
int bcmp(const void *s1, const void *s2, int n); | 比较字符串s1和s2的前n个字节是否相等,相同返回0否则返回非0,不检查空指针 |
void bzero(void *s, int n); | 置字节字符串s的前n个字节为零 |
void bcopy(const void *src, void *dest, int n); | 将字符串src的前n个字节复制到dest中,bcopy不检查字符串中的空字节NULL,函数没有返回值 |
void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count); | 由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制,返回指向字符ch后的第一个字符的指针,如果src前n个字节中不存在ch则返回NULL |
void *memcpy(void *dest, void *src, unsigned int count); | 由src所指内存区域复制count个字节到dest所指内存区域 |
void *memchr(void *buf, char ch, unsigned count); | 从buf所指内存区域的前count个字节查找字符ch |
int memcmp(void *buf1, void *buf2, unsigned int count); | 比较内存区域buf1和buf2的前count个字节, 当buf1 当buf1=buf2时,返回值=0 当buf1>buf2时,返回值>0 |
int memicmp(void *buf1, void *buf2, unsigned int count); | 比较内存区域buf1和buf2的前count个字节但不区分字母的大小写 |
void *memmove(void *dest, const void *src, unsigned int count); | 由src所指内存区域复制count个字节到dest所指内存区域 |
void *memset(void *buffer, int c, int count); | 把buffer所指内存区域的前count个字节设置成字符 |
void setmem(void *buf, unsigned int count, char ch) | 把buf所指内存区域前count个字节设置成字符ch |
void movmem(void *src, void *dest, unsigned int count); | 由src所指内存区域复制count个字节到dest所指内存区域 |
char *stpcpy(char *dest,char *src); | 把src所指由NULL结束的字符串复制到dest所指的数组中src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest结尾处字符(NULL)的指针。 |
char *strcpy(char *dest,char *src); | 把src所指由NULL结束的字符串复制到dest所指的数组中,src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 |
char *strcat(char *dest,char *src); | 把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' |
char *strchr(char *s,char c); | 查找字符串s中首次出现字符c的位置返回首次出现c的位置的指针,如果s中不存在c则返回NULL |
int strcmp(char *s1,char * s2); | 当s1 当s1=s2时,返回值=0 当s1>s2时,返回值>0 |
int stricmp(char *s1,char * s2); | 比较字符串s1和s2,但不区分字母的大小写 |
int strcspn(char *s1,char *s2); | 在字符串s1中搜寻s2中所出现的字符 |
char *strdup(char *s); | 复制字符串s |
int strlen(char *s); | 计算字符串s的长度 |
char *strlwr(char *s); | 将字符串s转换为小写形式 |
char *strupr(char *s); | 将字符串s转换为大写形式 |
char *strncat(char *dest,char *src,int n); | 把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' |
int strcmp(char *s1,char * s2,int n) | 比较字符串s1和s2的前n个字符。 |
int strnicmp(char *s1,char * s2,int n); | 比较字符串s1和s2的前n个字符但不区分大小写 |
extern char *strncpy(char *dest, char *src, int n); | 把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组 |
char *strpbrk(char *s1, char *s2); | 在字符串s1中寻找字符串s2中任何一个字符相匹配的第一个字符的位置,空字符NULL不包括在内 |
char *strrev(char *s); | 把字符串s的所有字符的顺序颠倒过来(不包括空字符NULL)。 |
char *strset(char *s, char c); | 把字符串s中的所有字符都设置成字符c |
char *strstr(char *haystack, char *needle); | 从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。 |
char *strtok(char *s, char *delim); | 分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串。 |
char *gcvt(double value, int ndigit, char *buf); | 把浮点数转换成字符串 |
系统函数
主要的函数都定义在system.h文件中
函数原型 | 功能 |
void clrscr(void); void ClearScreen(void); | 清屏 |
void TextOut(int x, int y, char *str, int mode); | 在屏幕上指定位置输出字符串 |
void block(int left, int top, int right, int bottom, int mode); | 在屏幕上画一矩形并填充 |
void cursor(int mode); | 设定光标形态 |
void delay(unsigned int msec); | 短暂延时 |
void sleep(unsigned int sec); | 短暂延时 |
void textmode(int mode); | 设定屏幕模式 |
void get_eng_font(char ch, char *buf, int mode); | 取英文字符的点阵 |
void get_chi_font(char *str, char *buf); | 获取中文字符的点阵 |
int getkey(void); | 功能同getchar |
int getpixel(int x, int y); | 返回屏幕上指定点的状态 |
void putpixel(int x, int y, int mode); | 在屏幕的指定位置上画点 |
void gotoxy(int x, int y); void gotoxy(int x, int y); | 将光标移动到指定位置 |
void line(int left, int top, int right, int bottom, int mode); | 在屏幕上画直线 |
void TextOut(int x, int y, char *str, int mode); | 在屏幕上指定位置输出字符串 |
char *pyfc(char *str); | 给定一个汉字str,查询对应的拼音 |
void rectangle(int left, int top, int right, int bottom, int mode); | 在屏幕上画一矩形。 |
int time(struct tm *pTime); | 取得系统时间 |
void write_chi_font(int x,int y,char *buf); | 写汉字点阵 |
void write_eng_font(int x,int y,char *buf,int mode); | 写英文字符的点阵 |
void SetDispBar(int sum, int cur); | 显示滚动条 |
int kbhit(void); | 检测按键检测键盘是否有键按下。如果有键按下,则返回对应键值;否则返回零。kbhit不等待键盘按键。无论有无按键都会立即返回。 |
int getchar(void); | 从键盘上读取一个键,并返回该键的键值 |
void putchar(char c); | 在屏幕上显示字符c |
void printf(const char *format,...); | format指定输出格式,后面跟要输出的变量 目前printf支持以下格式: %c 单个字符 %d 十进制整数 %f 十进制浮点数 %o 八进制数 %s 字符串 %u 无符号十进制数 %x 十六进制数 %% 输出百分号% 一个格式说明可以带有几个修饰符,用来指定显示宽度,小数尾书及左对齐 |
int access(const char *filename, int amode); | 确定文件的访问权限 |
int atexit(atexit_t func); | 注册终止函数 |
类型转换
主要的函数都声明在ctyoe.h文件中
函数原型 | 功能 |
int iscntrl(int c); | 判断字符c是否为控制字符当c在0x00-0x1F之间或等于0x7F(DEL)时,返回非零值,否则返回零 |
int isalnum(int c); | 判断字符c是否为字母或数字 |
int isalpha(int c); | 判断字符c是否为英文字母 |
int isascii(int c); | 判断字符c是否为ascii码 |
int isblank(int c); | 判断字符c是否为TAB或空格 |
int isdigit(int c); | 判断字符c是否为数字 |
int isgraph(int c); | 判断字符c是否为除空格外的可打印字符 |
int islower(int c); | 判断字符c是否为小写英文字母 |
int isprint(int c); | 判断字符c是否为可打印字符(含空格) |
int ispunct(int c); | 判断字符c是否为标点符号 |
int isspace(int c); | 判断字符c是否为空白符 |
int isupper(int c); | 判断字符c是否为大写英文字母 |
int isxdigit(int c); | 判断字符c是否为十六进制数字 |
int toascii(int c); | 将字符c转换为ascii码 |
int tolower(int c); | 将字符c转换为小写英文字母 |
int toupper(int c); | 将字符c转换为大写英文字母 |
double atof(const char *nptr); | 把字符串转换成浮点数 |
int atoi(const char *nptr); | 把字符串转换成长整型数 |
long atol(const char *nptr); | 把字符串转换成长整型数 |
char ecvt(double value, int ndigit, int *decpt, int *sign); | 把一个浮点数转换为字符串 |
char *itoa(int i); | 把整数i转换成字符串 |
画图函数
函数原型 | 功能 |
void far bar(int left, int top, int right, int bottom); | 画一个二维条形图 |
void far bar3d(int left, int top, int right, int bottom, int depth, int topflag); | 画一个三维条形图 |
int bioscom(int cmd, char abyte, int port); | 串行I/O通信 |
int bioskey(int cmd); | 直接使用BIOS服务的键盘接口 |
int biosprint(int cmd, int byte, int port); | 直接使用BIOS服务的打印机I/O |
long biostime(int cmd, long newtime); | 读取或设置BIOS时间 |
void *bsearch(const void *key, const void *base, size_t *nelem, size_t width, int(*fcmp)(const void *, const *)); | 二分法搜索 |
void far circle(int x, int y, int radius); | 在给定半径以(x, y)为圆心画圆 |
void far cleardevice(void); | 清除图形屏幕 |
void far closegraph(void); | 关闭图形系统 |
void clreol(void); | 在文本窗口中清除字符到行末 |
void clrscr(void); | 清除文本模式窗口 |
struct COUNTRY *country(int countrycode, struct country *country); | 返回与国家有关的信息 |
int cprintf(const char *format[, argument, ...]); | 送格式化输出至屏幕 |
void cputs(const char *string); | 写字符到屏幕 |
int cscanf(char *format[,argument, ...]); | 从控制台执行格式化输入 |
char *ctime(const time_t *time); | 把日期和时间转换为字符串 |
void ctrlbrk(*fptr)(void); | 设置Ctrl-Break处理程序 |
void far detectgraph(int far *graphdriver, int far *graphmode); | 通过检测硬件确定图形驱动程序和模式 |
void far drawpoly(int numpoints, int far *polypoints); | 画多边形 |
void far ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius); | 画一椭圆 |
void far fillellipse(int x, int y, int xradius, int yradius); | 画出并填充一椭圆 |
void far fillpoly(int numpoints, int far *polypoints); | 画并填充一个多边形 |
void far floodfill(int x, int y, int border); | 填充一个有界区域 |
int far getbkcolor(void); | 返回当前背景颜色 |
int far getcolor(void); | 返回当前画线颜色 |
int far getmaxx(void); int far getmaxy(void); | 返回屏幕的最大x坐标 |
void gettextinfo(struct text_info *inforec); | 取得文本模式的显示信息 |
int far getpixel(int x, int y); | 取得指定像素的颜色 |
void far getviewsettings(struct viewporttype far *viewport); | 返回有关当前视区的信息 |
标签:字符,int,void,float,C语言,char,字符串,库函数,大全 来源: https://blog.csdn.net/yang1fei2/article/details/118266923
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。