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.936

    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Go语言垃圾回收(GC原理)

1. GC回收机制 1.1 V1.3标记清除法 (1)概述 1.STW暂停 STW(暂停业务逻辑,找出可达和不可达对象) 2.对可达对象做上标记 标记完成之后,对象5和对象6不可达,被GC清除.之后STW结束. (2).缺点 STW :让程序暂停,程序出现卡顿.标记需要扫描整个heap.清除数据会产生heap碎片. 1.…

【linux软件基础知识】与调度相关的进程描述符

进程描述符 每个进程描述符都包括几个与调度相关的字段,如下代码所示: struct thread_struct {unsigned long rsp0;unsigned long rsp;unsigned long userrsp; /* Copy from PDA */ unsigned long fs;unsigned

SprigBoot中的配置优先级 Bean管理

黑马程序员JavaWeb开发教程 文章目录 一、配置优先级1.1 SpringBoot 中支持三种格式的配置文件1.2 Java系统属性 & 命令行参数1.3 总结 二、Bean管理2.1 获取bean2.1.1 在默认情况下 2.2 bean 作用域&#xff08;实际开发中一般不需要考虑&#xff09;2.2.1 bean的作用域2.…

XML 相关漏洞风险研究

前言 经常看到有关 XXE 的漏洞分析&#xff0c;大概知道原理&#xff0c;但是对 XML 中相关的定义却一知半解。XEE 全称为 XML External Entity 即 XML 外部实体&#xff0c;但除了常见的 EXP 还有哪些触发方法&#xff1f;XML 相关的漏洞除了 XXE 还有什么其他攻击面&#xf…

已办理劳务资质,为何无法在全国建筑市场网查询到企业?

已办理劳务资质的企业无法在全国建筑市场网&#xff08;四库一平台&#xff09;查询到&#xff0c;可能的原因如下&#xff1a; 数据更新延迟&#xff1a; 全国建筑市场监管公共服务平台&#xff08;四库一平台&#xff09;的数据更新可能存在延迟。新获得的劳务资质信息在平台…

系统架构设计师【第14章】: 云原生架构设计理论与实践 (核心总结)

文章目录 14.1 云原生架构产生背景14.2 云原生架构内涵14.2.1 云原生架构定义14.2.2 云原生架构原则14.2.3 主要架构模式14.2.4 典型的云原生架构反模式 14.3 云原生架构相关技术14.3.1 容器技术14.3.2 云原生微服务14.3.3 无服务器技术14.3.4 服务网格 14.4 云原生…

Arthas使用教程——JVM常用命令

JVM相关命令 dashboard——当前系统的实时数据面板 显示当前 tomcat 的实时信息。 使用方式&#xff1a;dashboard 数据说明 ID: Java 级别的线程 ID&#xff0c;注意这个 ID 不能跟 jstack 中的 nativeID 一一对应。 NAME: 线程名 GROUP: 线程组名 PRIORITY: 线程优先级…

网站入门:Flask用法讲解

Flask是一个使用Python编写的轻量级Web服务框架&#xff0c;旨在帮助开发人员快速构建和部署Web应用程序。下面将对Flask进行更为详细的解释说明&#xff0c;并展示其使用示例与注意事项&#xff1a; 1.解释说明 定义及特点: Flask以其简洁和灵活著称&#xff0c;允许开发者以…

一个弹出的虚假安全警告去除

虚假的安全警告 poratus.azurewebsites.net Pornographic spyware detected! Remove viruses with Avira Antivirus 通过 Microsoft Edge GPT-4 (OpenAI) 这个提示可能是一个虚假的安全警告&#xff0c;被称为“恐吓软件”&#xff08;scareware&#xff09;&#xff0c;旨在…

直流输电系统氧化锌ZnO电阻设计方案

氧化锌限压器是超高压直流输电系统的主要过电压保护装置。现代直流输电系统的换流站都采用品闸元件作为换流阀,高压晶闸阀的绝缘是非自恢复的,对过电压一分敏感,耐压特性与波头关系很小,只要电压上升到某一定值时,将立即发生击穿,造成损坏。因此,往往将ZnO限压器直接跨接在桥阀…

Python量化交易学习——Part4:基于基本面的单因子选股策略

技术分析与基本面分析是股票价格分析最基础也是最经典的两个部分。技术分析是针对交易曲线及成交量等指标进行分析,基本面分析是基于公司的基本素质进行分析。 一般来说选股要先选行业,在选个股,之后根据技术分析选择买卖节点,因此针对行业及个股的基本面分析是选股的基础。…

【旧文更新】【优秀课设】基于FPGA的Verilog HDL自动售货机

【旧文更新】基于FPGA的Verilog HDL自动售货机 文章目录 关于旧文新发FPGACortex-M架构SysTick系统定时器阻塞和非阻塞延时 附录&#xff1a;压缩字符串、大小端格式转换压缩字符串浮点数压缩Packed-ASCII字符串 大小端转换什么是大端和小端数据传输中的大小端总结大小端转换函…

HTTPS 为什么比 HTTP 更安全?

HTTPS 为什么比 HTTP 更安全&#xff1f; 在当今互联网环境中&#xff0c;安全性是至关重要的。无论是浏览网站还是进行在线交易&#xff0c;确保数据传输的安全性都是用户和企业的共同目标。HTTP 和 HTTPS 是两种用于传输网页数据的协议&#xff0c;但它们之间的安全性存在显…

常见算法(基本查找、二分查找、分块查找冒泡、选择、插入、快速排序和递归算法)

一、常见算法-01-基本、二分、插值和斐波那契查找 1、基本查找/顺序查找 需求1&#xff1a;定义一个方法利用基本查找&#xff0c;查询某个元素是否存在 数据如下&#xff1a;{131&#xff0c;127&#xff0c;147&#xff0c;81&#xff0c;103&#xff0c;23&#xff0c;7&am…

k8s学习--Secret详细解释与应用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Secret什么是Secret?Secret四种类型及其特点Secret应用案例&#xff08;1&#xff09;将明文密码进行base64编码&#xff08;2&#xff09;编写创建secret的YAML文…

如何设置让背景颜色不包括 padding 部分,顺带全面学习 background-clip 属性(可以实现文字渐变)

先解决需求 实现背景颜色不包括 padding 部分&#xff0c;直接给容器添加 css 属性&#xff1a;background-clip:content-box; 示例代码&#xff1a; .content-box-example {background-color: lightblue;padding: 20px;border: 1px solid black;background-clip: content-bo…

vue项目出现多次ElMessage弹框

问题&#xff1a; 解决方法&#xff1a; let message null if (message null) { message ElMessage.error(“登录过期,请重新登录”); } 最终效果&#xff1a;只出现一个弹框

AI大模型在穿戴设备健康中的心率深度融合与案例分析

文章目录 1. 架构设计2. 应用场景3. 实现步骤3.1 步骤1&#xff1a;数据预处理3.2 步骤2&#xff1a;边缘计算初步分析3.3 步骤3&#xff1a;数据上传到云端3.4 步骤4&#xff1a;云端复杂分析3.5 步骤5&#xff1a;深度学习模型训练与部署 4. 云端API设计4.1 安装Flask4.2 API…

centos7.8安装Mysql8.4

在集群中我们选择将Mysql安装在slave01节点上。 1.在官网下载mysql安装包MySQL :: Download MySQL Yum Repository 下载后上传到slave01节点的/opt/software目录下。 2.切换到root用户下&#xff08;切换到root用户操作&#xff09; 3.查看和删除安装的MySQL软件包和依赖包 r…

logback删除日志文件和文件夹

​​​​​一&#xff0c;事由和源码 logback版本1.2.11 网上找了很多都是无法删除文件夹的&#xff0c;原先使用的TimeBasedRollingPolicy无法删除日志的文件夹&#xff0c;有很多空的日期文件夹&#xff0c;于是查看TimeBasedRollingPolicy源码发现有校验不删除文件夹&#x…