C基础-标准库上

2024-06-03 09:28
文章标签 基础 标准 库上

本文主要是介绍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;
}

这篇关于C基础-标准库上的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1026594

相关文章

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

C 标准库 - `<float.h>`

C 标准库 - <float.h> 概述 <float.h> 是 C 标准库中的一个头文件,它定义了与浮点数类型相关的宏。这些宏提供了关于浮点数的属性信息,如精度、最小和最大值、以及舍入误差等。这个头文件对于需要精确控制浮点数行为的程序非常有用,尤其是在数值计算和科学计算领域。 主要宏 <float.h> 中定义了许多宏,下面列举了一些主要的宏: FLT_RADIX:定义了浮点数的基数。

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

C 语言基础之数组

文章目录 什么是数组数组变量的声明多维数组 什么是数组 数组,顾名思义,就是一组数。 假如班上有 30 个同学,让你编程统计每个人的分数,求最高分、最低分、平均分等。如果不知道数组,你只能这样写代码: int ZhangSan_score = 95;int LiSi_score = 90;......int LiuDong_score = 100;int Zhou

c++基础版

c++基础版 Windows环境搭建第一个C++程序c++程序运行原理注释常亮字面常亮符号常亮 变量数据类型整型实型常量类型确定char类型字符串布尔类型 控制台输入随机数产生枚举定义数组数组便利 指针基础野指针空指针指针运算动态内存分配 结构体结构体默认值结构体数组结构体指针结构体指针数组函数无返回值函数和void类型地址传递函数传递数组 引用函数引用传参返回指针的正确写法函数返回数组

【QT】基础入门学习

文章目录 浅析Qt应用程序的主函数使用qDebug()函数常用快捷键Qt 编码风格信号槽连接模型实现方案 信号和槽的工作机制Qt对象树机制 浅析Qt应用程序的主函数 #include "mywindow.h"#include <QApplication>// 程序的入口int main(int argc, char *argv[]){// argc是命令行参数个数,argv是

【MRI基础】TR 和 TE 时间概念

重复时间 (TR) 磁共振成像 (MRI) 中的 TR(重复时间,repetition time)是施加于同一切片的连续脉冲序列之间的时间间隔。具体而言,TR 是施加一个 RF(射频)脉冲与施加下一个 RF 脉冲之间的持续时间。TR 以毫秒 (ms) 为单位,主要控制后续脉冲之前的纵向弛豫程度(T1 弛豫),使其成为显著影响 MRI 中的图像对比度和信号特性的重要参数。 回声时间 (TE)