下: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 | 定义浮点加法的舍入模式,它可以是下列任何一个值:
|
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_BIT | char 类型的位数 | 通常为 8 |
CHAR_MIN | char 类型的最小值(有符号或无符号) | -128 或 0 |
CHAR_MAX | char 类型的最大值(有符号或无符号) | 127 或 255 |
SCHAR_MIN | signed char 类型的最小值 | -128 |
SCHAR_MAX | signed char 类型的最大值 | 127 |
UCHAR_MAX | unsigned char 类型的最大值 | 255 |
短整数类型 | ||
SHRT_MIN | short 类型的最小值 | -32768 |
SHRT_MAX | short 类型的最大值 | 32767 |
USHRT_MAX | unsigned short 类型的最大值 | 65535 |
整数类型 | ||
INT_MIN | int 类型的最小值 | -2147483648 |
INT_MAX | int 类型的最大值 | 2147483647 |
UINT_MAX | unsigned int 类型的最大值 | 4294967295 |
长整数类型 | ||
LONG_MIN | long 类型的最小值 | -9223372036854775808L |
LONG_MAX | long 类型的最大值 | 9223372036854775807L |
ULONG_MAX | unsigned long 类型的最大值 | 18446744073709551615UL |
长长整数类型 | ||
LLONG_MIN | long long 类型的最小值 | -9223372036854775808LL |
LLONG_MAX | long long 类型的最大值 | 9223372036854775807LL |
ULLONG_MAX | unsigned 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
用于支持程序的国际化和本地化。
库宏描述:
序号 | 宏 & 描述 |
---|---|
1 | LC_ALL 用于设置或查询所有本地化类别。 |
2 | LC_COLLATE 用于设置或查询字符串比较的本地化信息。 |
3 | LC_CTYPE 用于设置或查询字符处理的本地化信息。 |
4 | LC_MONETARY 用于设置或查询货币格式的本地化信息。 |
5 | LC_NUMERIC 用于设置或查询数字格式的本地化信息(例如小数点的符号)。 |
6 | LC_TIME 用于设置或查询时间格式的本地化信息。 |
7 | locale_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;
}