标准库|C语言标准库所包含的函数功能介绍(1)
文章插图
C 语言的标准库通常包含了一组标准头文件和一个或几个库函数代码文件 。 在写 C 程序时 , 只需使用 #include 预处理命令引入相关头文件 , 就可以保证程序里能够正确使用标准库功能了 。
在这些头文件里列出了各个库函数的原型 , 定义了库函数所使用的有关类型(如表示流的 FILE 结构类型等)和一些符号常量(如 EOF、NULL) 。
标准头文件包括:
文章插图
C标准头文件
下面是对每个标准库所包含的函数功能的简单介绍 。
1、stdio.h 即 standard input & output(标准输入输出) 。 在源代码中如用到标准输入输出函数时 , 就要包含这个头文件 。
stdio.h所包含的函数:
- 文件访问:fopen、freopen、fflush、fclose
- 二进制输入/输出:fread、fwrite
- 非格式化输入/输出:fgetc/getc、fputc/putc、ungetc、fgets、fputs
- 格式化输入/输出:scanf/fscanf/sscanf、printf/fprintf/sprintf、perror
- 文件定位:ftell、fseek、fgetpos、fsetpos、rewind
- 错误处理:feof、ferror
- 文件操作:remove、rename、tmpfile
2、stdlib.h 即 standard library 标准库头文件 。 stdlib.h里面定义了五种类型、一些宏和常用的系统函数 。
- 类型:size_t、wchar_t、div_t、ldiv_t和lldiv_t;
- 宏例:EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等;
- int atoi(const char *nptr):表示 ascii to integer , 把字符串转换成整型数;
- long atol(const char *nptr):把字符串转换成长整型数;
- rand():产生随机数的一个随机函数;
- void srand(unsigned int seed):srand和rand()配合使用产生伪随机数序列 。
3、stddef.h 定义了一些标准宏和类型 , 包括:
- size_t(sizeof运算符的结果类型 , 无符号整型);
- ptrdiff_t (两个指针相减运算的结果类型 , 有符号整型);
- wchar_t (宽字符类型 , 整型);
- 指针常量 NULL(空指针值);
- offsetof(type, member-designator) :获得字段在结构体中的偏移量 。
4、
- int isalpha(char ch):检查ch是否是字母;
- int iscntrl(int ch):检查ch是否控制字符(其ASCII码在0和0x1F之间 , 数值为 0-31);
- int isdigit(char ch):检查ch是否是数字(0-9);
- int islower(int ch):检查ch是否小写字母(a-z);
- int isupper(int ch):检查ch是否是大写字母(A-Z);
- int tolower(int ch):将ch字符转换为小写字母;
- int toupper(int ch):将ch字符转换成大写字母;
- int isspace(int ch):检查ch是否是空格符、跳格符或换行符;
- int isascii(int ch):测试参数是否是ASCII码0-127;
- char *strcpy(char *destin, char *source):拷贝一个字符串到另一个;
- char *strncpy(char *dest, char *src, size_t n):将字符串src中最多n个字符复制到字符数组dest中 , 它并不像strcpy一样遇到NULL才停止复制 , 而是等凑够n个字符才开始复制;
- char *strcat(char *destin, char *source):字符串拼接函数;
- char *strrev(char *str):字符串倒转;
- char *strchr(char *str, char c):在一个串中查找给定字符的第一个匹配之处;
- size_tstrlen(const char *s):求字符串的长度 , 从字符串的首地址开始到遇到第一个'\0'停止计数;
- int strcmp(char *str1, char *str2):字符串比较 , 看ASCII 码 , str1>str2 , 返回值 > 0;两串相等 , 返回0;
- 推新标准建新生态,下载超198亿次金山发力海内外
- 覆盖|iPhone13Pro概念机:机身正面被屏幕全覆盖,库克想搞事情?
- 不坑|库克不讲“性价比”!一台iPhone12至少赚4千,网友:不坑穷人
- 设计语言|全新家族设计,三星Galaxy A32渲染图曝光
- 核酸|北京:所有入市交易冷链产品做到不验核酸不入库
- 价格|华为mate40国行标准版将发售,价格已确定
- 唤醒|唤醒沉睡的立体车库
- 技术|广东省电线电缆标准化技术委员会(第二届)成立
- 标准|自动驾驶汽车安全监管要有新标准了
- 合同|人脸识别,“必要性”标准有待细化