首页 > 你问我答 >

问 C 语言常用库函数有哪些 标准库分类汇总

2026-11-05 08:41:54
最佳答案

答

C 语言库函数是标准库提前封装好的现成函数,存放在各个头文件里面,程序员调用的时候只需要引入对应的头文件,不需要自己从零编写底层代码,就能完成输入输出字符串处理内存分配数学运算时间获取等基础功能。之所以要学习常用库函数,是因为日常刷题写项目绝大多数基础功能都可以直接调用库函数,大幅减少重复造轮子,提升开发效率,同时 C 标准库是跨平台的,只要遵守标准,同一份代码在不同编译器上都可以正常运行。每一类库函数都对应专属头文件,调用之前必须包含头文件,如果忘记引入头文件,老编译器可能只是警告,新编译器会直接报错。使用的时候第一步确认功能所属类别,第二步引入对应的头文件,第三步按照函数原型传入正确类型参数,第四步接收返回值,第五步注意函数边界和错误返回值判断。整体理解思路,常用库函数按照功能划分成输入输出字符串处理数学运算动态内存分配通用工具时间日期字符处理这几大类,下面分类详细介绍最常用的函数。

输入输出类 头文件 stdio.h

这是入门最先接触的库函数,负责控制台输入输出文件读写

函数名功能说明
printf格式化输出到控制台
scanf从键盘格式化读取输入
getchar读取单个字符
putchar输出单个字符
gets 不推荐读取一行字符串,存在溢出风险
fgets安全读取一行字符串,可以限制长度
fopen打开文件
fclose关闭文件
fread二进制读取文件
fwrite二进制写入文件
fprintf格式化写入文件
fscanf从文件格式化读取

字符串处理类 头文件 string.h

专门处理以零结尾的 char 字符串,是非常高频的库函数

函数名功能说明
strlen计算字符串有效长度,不统计末尾零
strcpy字符串拷贝
strncpy带长度限制的字符串拷贝,更安全
strcat字符串拼接
strncat带长度限制字符串拼接
strcmp字符串比较,返回正负零
strchr查找字符第一次出现位置
strstr查找子串位置
memset将一块内存按字节填充指定值
memcpy内存块拷贝
memmove可处理重叠内存的内存拷贝

数学运算类 头文件 math.h

数值计算相关库函数,注意部分编译器编译需要链接数学库

函数名功能说明
abs整数绝对值
fabs浮点数绝对值
pow求幂运算 x 的 y 次方
sqrt开平方根
sin cos tan三角函数,参数单位弧度
log log10自然对数 常用对数
ceil向上取整
floor向下取整
round四舍五入取整

动态内存与通用工具类 头文件 stdlib.h

内存分配随机数程序退出数值转换都在这个头文件

函数名功能说明
malloc申请堆内存
calloc申请堆内存并且初始化为零
realloc调整已经申请内存大小
free释放堆内存,必须和 malloc 配对
rand生成伪随机数
srand设置随机数种子
atoi字符串转 int 整数
atof字符串转 double 浮点数
atol字符串转 long 整数
exit直接终止程序
qsort快速排序库函数

字符判断处理类 头文件 ctype.h

判断字符是数字字母大小写,字符大小写转换

函数名功能说明
isdigit判断是否是数字字符
isalpha判断是否是英文字母
isupper判断是否大写字母
islower判断是否小写字母
isspace判断是否空白字符 空格回车制表符
toupper小写转大写
tolower大写转小写

时间日期类 头文件 time.h

获取系统时间时间戳计时

函数名功能说明
time获取当前时间戳
localtime时间戳转本地时间结构体
strftime格式化输出时间字符串
clock获取程序运行 CPU 计时

基础示例代码

include

include

include

int main ()

{

char str [32] = "hello";

int len = strlen (str);

printf ("字符串长度 % d\n", len);

int p = (int ) malloc (sizeof (int));

p = 100;

printf ("% d\n", p);

free (p);

return 0;

}

深度重点知识

第一 库函数并不是全部安全,strcpy strcat 这类老函数没有长度限制,很容易缓冲区溢出,正式项目优先选择带 n 版本的 strncpy strncat fgets。

第二 malloc 申请内存之后一定要 free,不释放会造成内存泄漏,重复 free 或者释放野指针会触发内存错误。

第三 math.h 里面函数参数有定义域限制,比如 sqrt 不能传入负数,pow 底数负数指数小数会产生异常,调用前要做参数校验。

第四 库函数返回值要判断,fopen 打开文件失败会返回空指针,malloc 申请失败也返回空指针,不能直接解引用。

第五 库函数是标准库提供,和用户自定义函数区分开,库函数名字属于预定义标识符,不建议自己重新定义同名函数覆盖原有库函数。

【常见问题】

问题 1 C 语言常用库函数有哪些里面调用库函数为什么要写头文件

回答 1 C 语言常用库函数有哪些里面,头文件存放库函数的声明,编译器需要依靠头文件知道函数参数和返回值类型,调用 C 语言常用库函数之前必须引入对应头文件,否则会出现编译报错或者隐式声明警告。

问题 2 C 语言常用库函数有哪些里面 strcpy 为什么不安全

回答 1 C 语言常用库函数有哪些中的 strcpy 没有长度限制,如果源字符串过长,会覆盖目标缓冲区,造成缓冲区溢出,所以学习 C 语言常用库函数的时候推荐改用 strncpy 这类带长度限制版本。

问题 3 C 语言常用库函数有哪些里面 malloc 和 calloc 有什么差别

回答 1 C 语言常用库函数有哪些里面 malloc 只申请堆内存不会初始化,calloc 申请内存之后自动把全部字节清零,二者都属于 stdlib.h 里面 C 语言常用库函数,使用结束都需要 free 释放。

问题 4 C 语言常用库函数有哪些里面 qsort 是什么功能

回答 1 C 语言常用库函数有哪些里面 qsort 是 stdlib.h 提供的快速排序库函数,可以对任意类型数组排序,需要用户自己编写比较函数,是 C 语言常用库函数里面非常实用的排序工具。

【免责申明】

本文内容基于 C 标准库主流实现编写,部分库函数在不同编译器和嵌入式平台存在支持差异,代码示例仅用于学习演示,实际项目开发请核对编译器手册,因为参数错误内存泄漏溢出造成程序异常,使用者自行承担相关风险。