C语言标准库函数大全(ctype、time 、stdio、stdlib、math、string)

2023-05-16

文章目录

  • C语言函数库:
    • 一. <ctype.h>
    • 二. <math.h>
    • 三. <stdio.h>
    • 四. <stdlib.h>
    • 五. <time.h>
    • 六. <string.h>
  • 文档资料

C语言函数库:

C语言的常用的标准头文件有 :

<ctype.h><time.h><stdio.h>

<stdlib.h><math.h><string.h>

一. <ctype.h>

序号函数原型功能
1int iscntrl(int c)判断字符c是否为控制字符。
2int isalnum(int c)判断字符c是否为字母或数字
3int isalpha(int c)判断字符c是否为英文字母
4int isascii(int c)判断字符c是否为ascii码
5int isblank(int c)判断字符c是否为TAB或空格
6int isdigit(int c)判断字符c是否为数字
7int isgraph(int c)判断字符c是否为除空格外的可打印字符
8int islower(int c)判断字符c是否为小写英文字母
9int isprint(int c)判断字符c是否为可打印字符(含空格)
10int ispunct(int c)判断字符c是否为标点符号
11int isspace(int c)判断字符c是否为空白符
12int isupper(int c)判断字符c是否为大写英文字母
13int isxdigit(int c)判断字符c是否为十六进制数字
14int toascii(int c)将字符c转换为ascii码
15int tolower(int c)将字符c转换为小写英文字母
16int toupper(int c);将字符c转换为大写英文字母

二. <math.h>

序号函数原型功能
1float fabs(float x)求浮点数x的绝对值
2int abs(int x)求整数x的绝对值
3float acos(float x)求x(弧度表示)的反余弦值
4float asin(float x)求x(弧度表示)的反正弦值
5float atan(float x)求x(弧度表示)的反正切值
6float atan2(float y, float x)求y/x(弧度表示)的反正切值
7float ceil(float x)求不小于x的最小整数
8float cos(float x)求x(弧度表示)的余弦值
9float cosh(float x)求x的双曲余弦值
10float exp(float x)求e的x次幂
11float floor(float x)求不大于x的最大整数
12float fmod(float x, float y)计算x/y的余数
13float frexp(float x, int *exp)把浮点数x分解成尾数和指数
14float ldexp(float x, int exp)返回x*2^exp的值
15float modf(float num, float *i)将浮点数num分解成整数部分和小数部分
16float hypot(float x, float y)对于给定的直角三角形的两个直角边,求其斜边的长度
17float log(float x)计算x的自然对数
18float log10(float x)计算x的常用对数
19float pow(float x, float y)计算x的y次幂
20float pow10(float x)计算10的x次幂
21float sin(float x)计算x(弧度表示)的正弦值
22float sinh(float x)计算x(弧度表示)的双曲正弦值
23float sqrt(float x)计算x的平方根
24float tan(float x);计算x(弧度表示)的正切值
25float tanh(float x)求x的双曲正切值

三. <stdio.h>

序号函数原型功能
1int printf(char *format...)产生格式化输出的函数
2int getchar(void)从键盘上读取一个键,并返回该键的键值
3int putchar(char c)在屏幕上显示字符c
4FILE *fopen(char *filename, char *type)打开一个文件
5FILE *freopen(char *filename, char *type,FILE *fp)打开一个文件,并将该文件关联到fp指定的流
6int fflush(FILE *stream)清除一个流
7int fclose(FILE *stream)关闭一个文件
8int remove(char *filename)删除一个文件
9int rename(char *oldname, char *newname)重命名文件
10FILE *tmpfile(void)以二进制方式打开暂存文件
11char *tmpnam(char *sptr)创建一个唯一的文件名
12int setvbuf(FILE *stream, char *buf, int type, unsigned size)把缓冲区与流相关
13int fprintf(FILE *stream, char *format[, argument,...])传送格式化输出到一个流中
14int scanf(char *format[,argument,...])执行格式化输入
15int fscanf(FILE *stream, char *format[,argument...])从一个流中执行格式化输入
16int fgetc(FILE *stream)从流中读取字符
17char *fgets(char *string, int n, FILE *stream)从流中读取一字符串
18int fputc(int ch, FILE *stream)送一个字符到一个流中
19int fputs(char *string, FILE *stream)送一个字符到一个流中
20 int getc(FILE *stream)从流中取字符
21int getchar(void)从 stdin 流中读字符
22char *gets(char *string)从流中取一字符串
23 int putchar(int ch)在 stdout 上输出字符
24int puts(char *string)送一字符串到流中
25int ungetc(char c, FILE *stream)把一个字符退回到输入流中
26int fread(void *ptr, int size, int nitems, FILE *stream)从一个流中读数据
27int fwrite(void *ptr, int size, int nitems, FILE *stream)写内容到流中 int fseek
28(FILE *stream, long offset, int fromwhere)重定位流上的文件指针
29long ftell(FILE *stream)返回当前文件指针
30int rewind(FILE *stream)将文件指针重新指向一个流的开头
31 int fgetpos(FILE *stream)取得当前文件的句柄
32int fsetpos(FILE *stream, const fpos_t *pos)定位流上的文件指针
33void clearerr(FILE *stream)复位错误标志
34 int feof(FILE *stream)检测流上的文件结束符
35 int ferror(FILE *stream)检测流上的错误
36 void perror(char *string)系统错误信息

四. <stdlib.h>

序号函数原型功能
1char *itoa(int i)把整数i转换成字符串
2void exit(int retval)结束程序
3double atof(const char *s)将字符串s转换为double类型
4int atoi(const char *s)将字符串s转换为int类型
5long atol(const char *s)将字符串s转换为long类型
6double strtod (const char*s,char **endp)将字符串s前缀转换为double型
7long strtol(const char*s,char **endp,int base)将字符串s前缀转换为long型
8unsinged long strtol(const char*s,char **endp,int base)将字符串s前缀转换为 unsinged long型
9int rand(void)产生一个0~RAND_MAX之间的伪随机数
10void srand(unsigned int seed)初始化随机数发生器
11void *calloc(size_t nelem, size_t elsize)分配主存储器
12void *malloc(unsigned size)内存分配函数
13void *realloc(void *ptr, unsigned newsize)重新分配主存
14void free(void *ptr)释放已分配的块
15void abort(void)异常终止一个进程
16void exit(int status)终止应用程序
17int atexit(atexit_t func)注册终止函数
18char *getenv(char *envvar)从环境中取字符串
19void *bsearch(const void *key, const void *base, size_t *nelem, size_t width, int(*fcmp)(const void *, const *))二分法搜索函数
20void qsort(void *base, int nelem, int width, int (*fcmp)())使用快速排序例程进行排序
21int abs(int i)求整数的绝对值
22long labs(long n)取长整型绝对值
23div_t div(int number, int denom)将两个整数相除 , 返回商和余数
24ldiv_t ldiv(long lnumer, long ldenom)两个长整型数相除 , 返回商和余数

五. <time.h>

序号函数原型功能
1clock_t clock(void)确定处理器时间函数
2time_t time(time_t *tp)返回当前日历时间
3double difftime(time_t time2, time_t time1)计算两个时刻之间的时间差
4time_t mktime(struct tm *tp)将分段时间值转换为日历时间值
5char *asctime(const struct tm *tblock)转换日期和时间为ASCII码
6char *ctime(const time_t *time)把日期和时间转换为字符串
7struct tm *gmtime(const time_t *timer)把日期和时间转换为格林尼治标准时间
8struct tm *localtime(const time_t *timer)把日期和时间转变为结构
9size_t strftime(char *s,size_t smax,const char *fmt, const struct tm *tp)根据 fmt 的格式 要求将 *tp中的日期与时间转换为指定格式

六. <string.h>

序号函数原型功能
1int bcmp(const void *s1, const void *s2, int n)比较字符串s1和s2的前n个字节是否相等
2void bcopy(const void *src, void *dest, int n)将字符串src的前n个字节复制到dest中
3void bzero(void *s, int n)置字节字符串s的前n个字节为零
4void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count)由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制
5void *memcpy(void *dest, void *src, unsigned int count)由src所指内存区域复制count个字节到dest所指内存区域
6void *memchr(void *buf, char ch, unsigned count)从buf所指内存区域的前count个字节查找字符ch
7int memcmp(void *buf1, void *buf2, unsigned int count)比较内存区域buf1和buf2的前count个字节
8int memicmp(void *buf1, void *buf2, unsigned int count)比较内存区域buf1和buf2的前count个字节但不区分字母的大小写
9void *memmove(void *dest, const void *src, unsigned int count)由src所指内存区域复制count个字节到dest所指内存区域
10void *memset(void *buffer, int c, int count)把buffer所指内存区域的前count个字节设置成字符c
11void setmem(void *buf, unsigned int count, char ch)把buf所指内存区域前count个字节设置成字符ch
12void movmem(void *src, void *dest, unsigned int count)由src所指内存区域复制count个字节到dest所指内存区域
13char *stpcpy(char *dest,char *src)把src所指由NULL结束的字符串复制到dest所指的数组中
14char *strcpy(char *dest,char *src)把src所指由NULL结束的字符串复制到dest所指的数组中
15char *strcat(char *dest,char *src)把src所指字符串添加到dest结尾处(覆盖dest结尾处的’\0’)并添加’\0’
16char *strchr(char *s,char c)查找字符串s中首次出现字符c的位置
17int strcmp(char *s1,char * s2)比较字符串s1和s2
18int stricmp(char *s1,char * s2)比较字符串s1和s2,但不区分字母的大小写
19int stricmp(char *s1,char * s2)比较字符串s1和s2,但不区分字母的大小写
20int strcspn(char *s1,char *s2)在字符串s1中搜寻s2中所出现的字符
21char *strdup(char *s)复制字符串s
22int strlen(char *s)计算字符串s的长度
23char *strlwr(char *s)将字符串s转换为小写形式
24char *strupr(char *s)将字符串s转换为大写形式
25char *strncat(char *dest,char *src,int n)把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的’\0’)并添加’\0’
26int strcmp(char *s1,char * s2,int n)比较字符串s1和s2的前n个字符
27int strnicmp(char *s1,char * s2,int n)比较字符串s1和s2的前n个字符但不区分大小写
28char *strncpy(char *dest, char *src, int n)把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中
29char *strpbrk(char *s1, char *s2)在字符串s1中寻找字符串s2中任何一个字符相匹配的第一个字符的位置,空字符NULL不包括在内
30char *strrev(char *s)把字符串s的所有字符的顺序颠倒过来(不包括空字符NULL)
31char *strset(char *s, char c)把字符串s中的所有字符都设置成字符c
32char *strstr(char *haystack, char *needle)从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)
33char *strtok(char *s, char *delim)分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串

文档资料

上面只是简单的介绍函数原型和功能,如果想对函数进一步了解可以下载以下文档 (内含详解与实例):

1. C语言标准函数库速查手册.chm

2. C语言标准函数库详解.pdf

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言标准库函数大全(ctype、time 、stdio、stdlib、math、string) 的相关文章

  • 将单独的月、日和年值转换为时间戳

    我有月份值 1 12 日期值 1 31 和年份值 2010 2011 2012 我还有一个小时值和一个分钟值 我怎样才能把这个给strtotime 它可以以某种方式将其转换为时间戳吗 当您已经知道年月和日期时 为什么将字符串转换为日期 us
  • 比较批处理文件中的两个数字

    我在这个网站上搜索了我的问题 但没有找到解决我问题的方法 系统为玩家和计算机提供一个从 2 到 12 的随机数 这有 3 部分 X 大于 Y 如果 X 小于 Y 以及当 X 与 Y 相同 当我开始 bat 效果很好 我选择Play Game
  • 如何舍入、取整、取整、截断

    如何对 jq jq 1 5 1 a5b5cbe 中的数字进行舍入 取整 取整和截断 例如 与 mass 188 72 我想 mass 188 有地板 mass 189 与天花板和圆形 舍入示例 5 52 gt 6 5 50 gt 5 or
  • 重新创建 CSS3 过渡三次贝塞尔曲线

    在 CSS3 过渡中 您可以将计时函数指定为 cubic bezier 0 25 0 3 0 8 1 0 在该字符串中 您仅指定曲线上点 P1 和 P2 的 XY 因为 P0 和 P3 始终分别为 0 0 0 0 和 1 0 1 0 根据苹
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 使用到达时间差对信号进行三边测量

    我在寻找或实现寻找信号源的算法时遇到一些麻烦 我的工作目标是找到声音发射器的位置 为了实现这一点 我使用了三个麦克风 我正在使用的技术是多点定位这是基于到达时间差 The 到达时间差使用发现每个麦克风之间互相关接收到的信号 我已经实现了算法
  • 如何在Python的SciPy中更改稀疏矩阵中的元素?

    我构建了一个小代码 我想用它来解决涉及大型稀疏矩阵的特征值问题 它工作正常 我现在要做的就是将稀疏矩阵中的一些元素设置为零 即最顶行中的元素 对应于实现边界条件 我可以调整下面的列向量 C0 C1 和 C2 来实现这一点 不过我想知道是否有
  • 绘制持续时间图表

    从我在写这篇文章之前所做的阅读中 我相当确定我需要创建甘特图 但我不知道这是否是正确的路线 需要将开始时间和结束时间的数据作为一个单位绘制在 Excel 图表上 Y 轴为日期 X 轴为一天中的小时 开始时间和结束时间的格式是 Excel 数
  • 解析时间字符串,如“1h 30min”

    任何人都知道 Java 库可以将 30min 或 2h 15min 或 2d 15h 30min 等时间字符串解析为毫秒 或某种 Duration 对象 Joda Time 可以做这样的事情吗 我有一个丑陋的长方法来维护它进行此类解析 并且
  • Android 中 localTime 和 localDate 的替代类有哪些? [复制]

    这个问题在这里已经有答案了 我想使用从 android API 获得的长值 该值将日期返回为长值 表示为自纪元以来的毫秒数 我需要使用像 isBefore plusDays isAfter 这样的方法 Cursor managedCurso
  • 拟合具有扭曲时基的正弦波

    我想知道在 Matlab 中拟合具有扭曲时基的正弦波的最佳方法 时间失真由 n 阶多项式 n 10 给出 其形式为t distort P t 例如 考虑失真t distort 8 12t 6t 2 t 3 这只是幂级数展开 t 2 3 这将
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • 使用Python查明时区当前是否处于夏令时[重复]

    这个问题在这里已经有答案了 我们有一个在 GMT 时间运行的服务器 我需要编写一个 Python 脚本来确定当前 此时此刻 加利福尼亚州洛杉矶是否为夏令时 DST 我怎样才能做到这一点 我查看了 pytz 和 time 但我无法弄清楚 我意
  • CLOCKS_PER_SEC 与 std::clock() 的结果不匹配

    我正在使用以下短程序来测试std clock include
  • 为什么 Math.Round 不返回 int? [复制]

    这个问题在这里已经有答案了 在 C 中 为什么舍入数学函数 Floor Ceiling 和 Round 不返回int 考虑到函数的结果始终是整数 为什么它返回一个float double or decimal double has the
  • SymPy 和 Sage 有什么区别?

    有什么区别SymPy http www sympy org and Sage https www sagemath org 又名 SageMath 全面披露 我是 SymPy 的首席开发人员 您应该了解的第一件事是 SymPy 和 Sage
  • 按时间范围聚合

    我有一个数据集 其中包含日期 yyyy mm dd 和时间 h m s 以及温度 float 作为单独的列 我想通过平均函数聚合每天的温度值 问题是 我不知道如何查询时间属性来表示例如聚合 h m 0 5 s and h m 5 10 s
  • R:变换不规则时间字符串

    我有两个不同的时间序列 来自不同的数据帧 具有不同的不规则格式 但问题是相同的 我只想提取小时 分钟 秒和毫秒 时代系列看起来像这样 ts1 08 27 23 445 08 27 24 280 08 27 25 115 I tried st
  • 如何将 STDOUT 捕获到字符串?

    puts hi puts bye 我想存储到目前为止代码的 STDOUT 在本例中 hi nbye 到变量中说 结果 并打印它 puts result 我这样做的原因是我已将 R 代码集成到我的 Ruby 代码中 当 R 代码运行时 其输出
  • Java 8:如何创建毫秒、微秒或纳秒的 DateTimeFormatter?

    我需要创建格式化程序来解析具有可选的毫秒 微米或纳秒分数的时间戳 例如 对于我的需求 我看到以下机会 DateTimeFormatter formatter new DateTimeFormatterBuilder append DateT

随机推荐

  • GPIO推挽输出和开漏输出模式区别详解

    以STM32参考手册中的GPIO输出配置图为例 xff1a 看到输出驱动器虚线框中的内容 xff0c 输出驱动器中的P MOS和N MOS两个MOS管就是实现推挽输出和开漏输出的关键 推挽输出模式下 xff0c P MOS和N MOS都正常
  • 树莓派新手入门教程

    截至目前 20210405 xff0c 树莓派最新版本为4B xff0c 如下图所示 xff1a 树莓派3B 43 的主要的部件位置 xff1a 下载最新Raspbian系统镜像 1 首先进入树莓派官网 xff1a https www ra
  • 公司研发工具链体系化建设,帮助公司从混乱走向正规

    一 软件发布平台 没办法对外提供二进制库下载便捷方式不方便部署 xff0c 不同版本之间预览和说明性欠缺问题 可以参考的解决方案 xff1a https www cnblogs com djlsunshine p 11164770 html
  • 关于写代码的几个看法

    最近在新公司负责bug的修复 xff0c 发现很多的代码逻辑理解起来有些困难 现在将其中观察到的现象列出来 xff0c 谈谈自己的看法 1 类过大 对于代码来说 xff0c 我们在编写的时候最好做到SRP Single Responsibi
  • 树莓派VNC server设置开机自启动

    目前已测试OK的几个方法 xff1a 方法1 xff08 作为服务自启动 xff09 xff1a 在 etc init d 中创建一个文件 例如tightvncserver xff1a span class token function s
  • 一个结构体 = 另一个结构体(同类型结构体之间可直接赋值操作)

    两个同类型结构体变量可以直接赋值 xff0c 不同类型结构体不能直接赋值 span class token macro property span class token directive hash span span class tok
  • FreeRTOS任务切换过程深层解析

    FreeRTOS 系统的任务切换最终都是在 PendSV 中断服务函数中完成的 xff0c uCOS 也是在 PendSV 中断中完成任务切换的 为什么用PendSV异常来做任务切换 PendSV 可以像普通中断一样被 Pending xf
  • QT C++入门学习(1) QT Creator安装和使用

    Qt官方下载 Qt 官网有一个专门的资源下载网站 xff0c 所有的开发环境和相关工具都可以从这里下载 xff0c 具体地址是 xff1a http download qt io 进入链接后 xff0c 是一个文件目录 xff0c 依次进入
  • QT初体验:手把手带你写一个自己的串口助手

    前言 本文记录一下用QT Creator 写一个基本功能齐全的串口助手的过程 xff0c 整个工程只有几百行代码 xff0c 跟着做下来对新手来说可以更快了解整个QT项目的开发过程和一些常用控件的使用方法 对新手学习QT能增强信心 xff0
  • QT如何打包生成独立可执行.exe文件

    一 将QT程序使用Release编译 二 新建一个文件夹 xff0c 将Release编译生成的exe文件复制到新建文件夹中 先找到Release编译生成的exe文件夹位置 xff0c 与项目创建的文件夹有关 xff1a 临时文件夹 rel
  • 利用OpenCV识别不规则图形轮廓并找其中心点和角度

    关于寻找图形的轮廓 xff0c 想来大家都不陌生 但平常寻找并进行识别的轮廓都是较为标准的图形 xff0c 如圆形 xff0c 矩形等 但在一些特殊情况下 xff0c 我们所检测的图形并不是理想的标准图形 比如说我们检测元件的引脚 xff0
  • 神经网络学习小记录21——InceptionV3模型的复现详解

    神经网络学习小记录21 InceptionV3模型的复现详解 学习前言什么是InceptionV3模型InceptionV3网络部分实现代码图片预测 学习前言 Inception系列的结构和其它的前向神经网络的结构不太一样 xff0c 每一
  • Ubuntu的快乐学习3——ros的launch用法

    Ubuntu的快乐学习3 ros的launch用法 学习前言launch是什么launch的使用方法一 简单使用二 常用标签1 launch标签2 node标签3 include标签4 remap标签5 param标签6 rosparam标
  • 三周年创作纪念日

    机缘 不知不觉已经开始分享三周年了 xff0c 最开始什么都不懂 xff0c 作为自动化的学生 xff0c 以为学点算法就可以变得厉害一些 xff0c 于是学了点C 43 43 相关就开始分享 后来立志于研究深度学习算法 xff0c 感觉强
  • win10+vs2017+opencv4.0.1+opencv_contrib-4.0.1详细教程

    最近想好好认真学习一下opencv4 0 xff0c 需要用到contrib扩展库 xff0c 配置完记录下 先写一下版本信息 xff1a opencv4 0 1 xff0c vs2017和 win10 其他opencv版本安装和配置原理一
  • OpenHD---低成本开源高清数字图传

    转载注明出处 文章目录 一 前言二 OpenHD简单介绍三 图传材料准备1 树莓派2 摄像头 排线 SD卡 读卡器4 网卡 四 硬件连接五 镜像刷写六 通电测试七 系统参数设置八 连接飞控九 关于二次开发十 最后 一 前言 这篇文章是对树莓
  • PS2手柄通讯协议解析---附资料和源码

    文章目录 一 PS2介绍二 PS2通讯协议介绍 xff08 1 xff09 PS2端口介绍 xff08 2 xff09 PS2通讯过程 三 基于STM32的PS2通信源码四 文档与源码下载链接 一 PS2介绍 今天就带大家来认识一下PS2的
  • Stm32延时与计时方法(HAL库)

    文章目录 一 延时的3种方法1 循环延时2 定时器中断延时与非中断延时 三 定时器中断式计时与延时二 定时器非中断式延时四 代码例程五 同系列博客 一 延时的3种方法 首先 xff0c 先了解一下什么延时 顾名思义 xff0c 延时即是延长
  • CAN通信知识梳理及在Stm32上的应用(HAL库)

    文章目录 一 CAN通信简介二 硬件连接三 CAN总线上的电平信号四 CAN帧的种类 xff08 1 xff09 遥控帧 xff08 2 xff09 数据帧 五 CAN的仲裁方法六 CAN在Stm32上的应用 xff08 1 xff09 C
  • C语言标准库函数大全(ctype、time 、stdio、stdlib、math、string)

    文章目录 C语言函数库 一 lt ctype h gt 二 lt math h gt 三 lt stdio h gt 四 lt stdlib h gt 五 lt time h gt 六 lt string h gt 文档资料 C语言函数库