C基础-标准库上

下:http://t.csdnimg.cn/LXa0J

C 标准库是一组 C 内置函数、常量和头文件,比如 <stdio.h>、<stdlib.h>、<math.h>,等等。

目录

一. assert.h

二. ctype.h

三. errno.h

四. float.h

五.limits.h

六. locale.h


一. assert.h

源码截图

用法

在程序运行时它计算括号内的表达式,如果成立则继续执行后面的语句,如果不成立,则报告错误,并终止执行.

ps: asert只有在Debug版本有效

二. ctype.h

主要用于检查字符的类型(如字母、数字、空白字符等)以及进行字符大小写转换。

详解
isalnum        检查 ch 是否为字母或数字
isalpha         检查 ch 是否为字母
isblank         (C++11 only)    检查 ch 是否为’\t’ 或 ’ ’
iscntrl           检查 ch 是否为控制字符( ASCII值在 0 ~ 31)
isdigit            检查 ch 是否为数字( ‘0’ ~ ‘9’ )
isgraph         检查 ch 是否为可显示字符,不包括空格
islower          检查 ch 是否为小写字母(‘a’ ~ ‘z’)
isprint            检查 ch 是否为可打印字符,包括空格
ispunct          检查 ch 是否为标点字符,即除字母,数字和空格以外的所有可打印字符
isspace         检查 ch 是否为 ’ ', ‘\t’, ‘\n’, ‘\v’, ‘\f’, ‘\r’
isupper          检查 ch 是否为大写字母(‘A’ ~ ‘Z’)
isxdigit           检查 ch 是否为一个 16 进制的数学字符(即 ‘0’ ~ ‘9’ 或 ‘A’ ~ ‘F’ 或 ‘a’ - ‘f’)
tolower          将 ch 字符转换成小写字母
toupper          将 ch 字符转换成大写字母

源码截图

例子

代码

#include <stdio.h>#include <ctype.h>int main()
{char  NumChar[] = "A,B,3 \n";//判断是否为数字或字母printf("是否为数字或字母 %d \n", isalnum(NumChar[0]));//判断是否为字母printf("是否为字母 %d \n", isalpha(NumChar[4]));//大写字母转换为小写字母printf("大写字母转换为小写字母 %c \n", tolower(NumChar[0]));
}

三. errno.h

提供了一种在程序中报告和处理错误的机制。

常用错误码:

  • EPERM:操作不允许
  • ENOENT:没有这样的文件或目录
  • ESRCH:没有这样的进程
  • EINTR:中断的系统调用
  • EIO:输入/输出错误
  • ENXIO:没有这样的设备或地址
  • E2BIG:参数列表太长
  • ENOMEM:内存不足
  • EACCES:权限被拒绝
  • EFAULT:坏的地址
  • EBUSY:资源忙
  • EEXIST:文件已存在
  • EXDEV:跨设备链接
  • ENODEV:没有这样的设备
  • ENOTDIR:不是一个目录
  • EISDIR:是一个目录
  • EINVAL:无效的参数
  • ENFILE:系统文件表溢出
  • EMFILE:打开的文件过多
  • ENOTTY:不是终端设备
  • ETXTBSY:文本文件忙
  • EFBIG:文件过大
  • ENOSPC:设备上没有空间
  • ESPIPE:非法的寻址
  • EROFS:只读文件系统
  • EMLINK:链接过多
  • EPIPE:管道破裂

源码截图

用法截图:

代码

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <errno.h>
#include <string.h>int main() {FILE* file = fopen("test11.txt", "r");if (file == NULL) {printf("文件为空,错误原因: %s\n", strerror(errno));return 1;}// 文件处理代码fclose(file);return 0;
}

四. float.h

包含了一组与浮点值相关的依赖于平台的常量。

库宏描述:

描述
FLT_ROUNDS定义浮点加法的舍入模式,它可以是下列任何一个值:
  • -1 - 无法确定

  • 0 - 趋向于零

  • 1 - 去最近的值

  • 2 - 趋向于正无穷

  • 3 - 趋向于负无穷

FLT_RADIX 2这个宏定义了指数表示的基数。基数 2 表示二进制,基数 10 表示十进制,基数 16 表示十六进制。

FLT_MANT_DIG

DBL_MANT_DIG

LDBL_MANT_DIG

这些宏定义了 FLT_RADIX 基数中的位数。

FLT_DIG 6

DBL_DIG 10

LDBL_DIG 10

这些宏定义了舍入后不会改变表示的十进制数字的最大值(基数 10)。

FLT_MIN_EXP

DBL_MIN_EXP

LDBL_MIN_EXP

这些宏定义了基数为 FLT_RADIX 时的指数的最小负整数值。

FLT_MIN_10_EXP -37

DBL_MIN_10_EXP -37

LDBL_MIN_10_EXP -37

这些宏定义了基数为 10 时的指数的最小负整数值。

FLT_MAX_EXP

DBL_MAX_EXP

LDBL_MAX_EXP

这些宏定义了基数为 FLT_RADIX 时的指数的最大整数值。

FLT_MAX_10_EXP +37

DBL_MAX_10_EXP +37

LDBL_MAX_10_EXP +37

这些宏定义了基数为 10 时的指数的最大整数值。

FLT_MAX 1E+37

DBL_MAX 1E+37

LDBL_MAX 1E+37

这些宏定义最大的有限浮点值。

FLT_EPSILON 1E-5

DBL_EPSILON 1E-9

LDBL_EPSILON 1E-9

这些宏定义了可表示的最小有效数字。

FLT_MIN 1E-37

DBL_MIN 1E-37

LDBL_MIN 1E-37

这些宏定义了最小的浮点值。

源码截图

例子:

源码:

#include <stdio.h>
#include <float.h>int main()
{printf("浮点数能表示的最大值。 = %.10e\n", FLT_MAX);printf("浮点数的最小值 = %.10e\n", FLT_MIN);printf("数字中数位的数量 = %.10e\n", FLT_MANT_DIG);
}

五.limits.h

定义了各种数据类型的限制;

库宏描述:

描述
字符类型
CHAR_BITchar 类型的位数通常为 8
CHAR_MINchar 类型的最小值(有符号或无符号)-128 或 0
CHAR_MAXchar 类型的最大值(有符号或无符号)127 或 255
SCHAR_MINsigned char 类型的最小值-128
SCHAR_MAXsigned char 类型的最大值127
UCHAR_MAXunsigned char 类型的最大值255
短整数类型
SHRT_MINshort 类型的最小值-32768
SHRT_MAXshort 类型的最大值32767
USHRT_MAXunsigned short 类型的最大值65535
整数类型
INT_MINint 类型的最小值-2147483648
INT_MAXint 类型的最大值2147483647
UINT_MAXunsigned int 类型的最大值4294967295
长整数类型
LONG_MINlong 类型的最小值-9223372036854775808L
LONG_MAXlong 类型的最大值9223372036854775807L
ULONG_MAXunsigned long 类型的最大值18446744073709551615UL
长长整数类型
LLONG_MINlong long 类型的最小值-9223372036854775808LL
LLONG_MAXlong long 类型的最大值9223372036854775807LL
ULLONG_MAXunsigned long long 类型的最大值18446744073709551615ULL

源码截图:

例子:

源码:

#include <stdio.h>
#include <limits.h>int main() {printf("字符类型:\n");printf("CHAR_BIT: %d\n", CHAR_BIT);printf("CHAR_MIN: %d\n", CHAR_MIN);printf("CHAR_MAX: %d\n", CHAR_MAX);printf("SCHAR_MIN: %d\n", SCHAR_MIN);printf("SCHAR_MAX: %d\n", SCHAR_MAX);printf("UCHAR_MAX: %u\n", UCHAR_MAX);return 0;
}

六. locale.h

用于支持程序的国际化和本地化。

库宏描述:

序号宏 & 描述
1LC_ALL
用于设置或查询所有本地化类别。
2LC_COLLATE
用于设置或查询字符串比较的本地化信息。
3LC_CTYPE
用于设置或查询字符处理的本地化信息。
4LC_MONETARY
用于设置或查询货币格式的本地化信息。
5LC_NUMERIC
用于设置或查询数字格式的本地化信息(例如小数点的符号)。
6LC_TIME
用于设置或查询时间格式的本地化信息。
7locale_t
表示区域设置信息的类型。

源码截图:

例子:

源码

#include <stdio.h>
#include <locale.h>int main() {// 设置本地化信息为用户环境变量中的默认设置setlocale(LC_ALL, "");// 获取和打印当前的本地化信息printf("Current locale for LC_ALL: %s\n", setlocale(LC_ALL, NULL));   //Chinese (Simplified)_China.936return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/21517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

166.二叉树:相同的树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

【机器学习】RLHF:在线方法与离线算法在大模型语言模型校准中的博弈

RLHF&#xff1a;在线方法与离线算法在大型语言模型校准中的博弈 一、引言二、RLHF概述三、在线方法与离线算法的对比四、实验验证与代码实例 一、引言 在人工智能领域&#xff0c;大型语言模型&#xff08;LLM&#xff09;的校准已成为一个备受关注的热点。基于人类反馈的强化…

实现spring配置bean类机制

大家好&#xff0c;这里是教授.F 流程说明&#xff1a; 我们自己实现spring配置bean类的机制&#xff0c;要先了解原本是怎么实现的。 原本的机制就是有一个bean配置文件&#xff0c;还有一个ApplicationContext spring文件。bean类写着要扫描的文件信息&#xff0c;spring文…

【Python学习】数据结构+正则表达式

个人主页&#xff1a;Yang-ai-cao 系列专栏&#xff1a;Python学习 博学而日参省乎己&#xff0c;知明而行无过矣 目录 个人主页&#xff1a;Yang-ai-cao 系列专栏&#xff1a;Python学习 博学而日参省乎己&#xff0c;知明而行无过矣 数据结构 一、列表&#xff08;Lis…

风电机组与风力发电机:它们是同一个东西吗?

风电机组与风力发电机&#xff1a;它们是同一个东西吗&#xff1f; 风电机组和风力发电机是两个常见的术语&#xff0c;尤其是在可再生能源领域。虽然这两个术语有时会被混淆使用&#xff0c;但它们实际上指的是不同的设备和系统。为了弄清楚它们之间的关系&#xff0c;本文将…

最近很火的 ChatTTS项目,有大佬做的 ChatTTS-UI 来啦

地址&#xff1a;https://github.com/jianchang512/ChatTTS-ui 》》》更多开源项目 ChatTTS webUI & API 一个简单的本地网页界面&#xff0c;直接在网页使用 ChatTTS 将文字合成为语音&#xff0c;支持中英文、数字混杂&#xff0c;并提供API接口。 Releases中可下载Wi…

光伏并网逆变器UL 1741:2021标准解析

光伏并网逆变器UL 1741:2021标准解析 不同国家的安规认证可以说是光伏逆变器走向国际市场的一张通行证&#xff0c;由于全球各国家的电网制式及并网政策的不同差异&#xff0c;这对逆变器测试顺利的通过安规测试认证 还是有一定的技术难度&#xff0c;也是中国光伏制造企业迫切…

最全解析:只有了解低代码平台的今生前世,才能明白低代码是什么

低代码&#xff08;Low-Code&#xff09;是一种软件开发方法&#xff0c;它使得开发人员能够通过图形界面、拖放组件和模型驱动的逻辑&#xff0c;快速地构建和部署应用程序&#xff0c;而无需编写大量的代码。尽管低代码这个术语是在2014年才提出&#xff0c;从诞生之初距今不…

【数据结构】复杂度的重要性—–决定程序运行的效率

【数据结构】复杂度的重要性—–决定程序运行的效率 前言 在我们写算法的时候&#xff0c;常常会需要考虑一个问题&#xff1a;这个算法好不好&#xff1f;而这个“好”实际上就取决于是算法的复杂度。 算法复杂度&#xff08;Algorithmic Complexity&#xff09;是指算法在编…

如何在电脑上安装两个flutter版本

Flutter Version Manager (FVM): Flutter的版本管理终极指南 Mac的flutter多版本管理之fvm的安装及使用 一、安装fvm brew tap leoafarias/fvm brew install fvm这个错误可能是由于网络问题或者 Git 配置问题导致的&#xff0c;我开启了梯子就可以了 brew install watchman…

Low Memory Killer in Android

目录 低内存管理&#xff08;Linux vs Android&#xff09; Linux内存回收 shrink_slab原理 shrink_zone原理 oom killer oom killer设计原则 OOM killer具体实现 android的lmk(Low Memory Killer) Android系统特点 oom killer在android中的不足 ​​​​​​​LMK概…

基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用

背景 随着互联网服务的广泛普及与技术应用的深入发展&#xff0c;日志数据作为记录系统活动、用户行为和业务操作的宝贵资源&#xff0c;其价值愈发凸显。然而&#xff0c;当前海量日志数据的产生速度已经远远超出了传统数据分析工具的处理能力&#xff0c;这不仅要求我们具备…

【机器学习】机器学习与AI大数据的融合:开启智能新时代

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 机器学习与AI大数据的融合 &#x1f4d2;1. 引言&#x1f4d5;2. 机器学习与大数据&#x1f3a9;机器学习与大数据的特征&#x1f388;大数据如…

驱动开发之platform总线

1.前言 在前面的实验以及提出的各种问题中&#xff0c;为了提高移植性&#xff0c;降低模块耦合度&#xff0c;提让模块高内聚&#xff0c;分离device与driver是一个必然的趋势了。为了解决这个问题&#xff0c;心心念念的platform总线出来。 linux从2.6起就加入了一套新的驱…

python中利用cartopy库绘制SST图像

1. Cartopy简介 Cartopy 是一个开源的 Python 库&#xff0c;用于绘制地图和地理数据分析。它结合了 matplotlib 的绘图功能和 shapely、pyproj 等库的地理空间数据处理能力&#xff0c;为用户提供了在地图上可视化数据的强大工具。 以下是 Cartopy 的一些主要特点和功能&#…

探索不同类型的“低”之魅力

随着数字化转型的浪潮不断高涨&#xff0c;低代码平台&#xff08;LCDP&#xff09;已逐渐成为企业快速构建和迭代应用程序的重要工具。低代码平台以其高效、灵活和易于集成的特点&#xff0c;受到越来越多企业的青睐。然而&#xff0c;低代码平台并非一蹴而就的单一产品&#…

CST电磁仿真软件表面等离子极化激元SPP --- 一维光栅耦合 - 衍射模式, 效率, Floquet端口

这两期我们看一下衍射光栅的高阶衍射、衍射效率、反射率。具体到仿真设置&#xff0c;就是Floquet端口的模式分析&#xff0c;S参数与衍射效率和反射率的关系。那么研究这些衍射和表面等离子极化激元SPP有什么关系呢&#xff1f;关系可大了&#xff0c;光栅是一种能够用来激励出…

告别鼠标,安卓模拟鼠标,绘图板,手写板操作电脑PC端,卡卡罗特也说好,儿童节快乐

家人们&#xff0c;上链接了&#xff1a;https://download.csdn.net/download/jasonhongcn/89387887 横屏模式&#xff1a; 竖屏模式&#xff1a; 操作说明&#xff1a; 1. 手势滑动模拟鼠标移动 2. 界面如果有滚动条&#xff0c;右手指按紧&#xff0c;通过左手指移动实现…

力扣:101. 对称二叉树

101. 对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false提示&#xff1a; …

mysql DDL——增删改

简略版&#xff1a; 文字化&#xff1a; 1.对全部字段添加数据&#xff1a;insert into 表名 values (值1&#xff0c;值2&#xff0c;值3...); 2.对指定字段添加数据&#xff1a;insert into 表名 (字段名1&#xff0c;字段名2...) values &#xff08;值1&#xff0c;值2..…