C基础-标准库上

news2024/11/26 1:26:35

目录

零. 简介

一. assert

二. ctype

三. errno

四. float

五. limits

六. locale


C基础-标准库下连接: http://t.csdnimg.cn/LCcXR

零. 简介

C 语言标准库是一组由 ANSI C 标准规定的头文件和函数的集合,为 C 语言提供了常用的功能,以满足各种基本的编程需求。它可以在不同的操作系统和编译器下使用,保证了 C 语言的可移植性

一. assert

assert是 C 语言标准库 <assert.h> 中的一个宏,用于在程序调试阶段进行条件断言。

属性和特点

  • 当断言表达式为假(即值为 0)时,assert 会输出一条错误信息,并终止程序的执行。
  • 在发布版本中,如果定义了 NDEBUG 宏(通常通过编译器选项实现),assert 语句会被忽略,不会产生任何运行时开销。

方法
assert(expression) ,其中 expression 是一个需要判断真假的表达式。

示例代码

#include <assert.h>
#include<stdio.h>
int main() {
    int num = 5;
    // 断言 num 大于 0
    assert(num > 0);
    printf("num is positive\n");
    return 0;
}

在上述代码中,如果 num 不大于 0 ,assert 就会触发错误,输出相关信息并终止程序。

在实际开发中,assert 常用于检查函数的前置条件、后置条件以及程序中的关键逻辑点,帮助开发者在调试阶段及时发现问题。

效果图:

成立

不成立

二. ctype

ctype.h定义了一批 C 语言字符分类函数,用于测试字符是否属于特定的字符类别,如字母字符、控制字符等,既支持单字节(Byte)字符,也支持宽字符。

以下是一些常见的函数及其简介、返回值和参数说明:

  • isalpha:检查字符是否是字母。函数原型为int isalpha(char ch),返回值为是字母则返回非 0(在某些编译器中可能为 2),否则返回 0。
  • iscntrl:检查字符是否是控制字符(其 ASCII 码在 0 和 0x1F 之间,数值为 0 - 31)。函数原型为int iscntrl(int ch),返回值为是控制字符返回非 0,否则返回 0。
  • isdigit:检查字符是否是数字(0 - 9)。函数原型为int isdigit(char ch),返回值为是数字返回非 0,否则返回 0。
  • isgraph:检查字符是否是可显示字符(其 ASCII 码在 0x21 到 0x7E 之间),不包括空格。函数原型为int isgraph(int ch),返回值为是可显示字符返回非 0,否则返回 0。
  • islower:检查字符是否是小写字母(a - z)。函数原型为int islower(int ch),返回值为是小写字母返回非 0,否则返回 0。
  • isupper:检查字符是否是大写字母(A - Z)。函数原型为int isupper(int ch),返回值为是大写字母返回非 0,否则返回 0。
  • tolower:将字符转换为小写字母。函数原型为int tolower(int ch),返回值为返回ch所代表的字符的小写字母。
  • toupper:将字符转换为大写字母。函数原型为int toupper(int ch),返回值为与ch相应的大写字母。
  • isalnum:检查字符是否是字母或数字。函数原型为int isalnum(int ch),返回值为是字母或数字返回非 0,否则返回 0。
  • isprint:检查字符是否是可打印字符(包括空格),其 ASCII 码在 0x20 到 0x7E 之间。函数原型为int isprint(int ch),返回值为是可打印字符返回非 0,否则返回 0。
  • ispunct:检查字符是否是标点字符(不包括空格),即除字母、数字和空格以外的所有可打印字符。函数原型为int ispunct(int ch),返回值为是标点字符返回非 0,否则返回 0。
  • isspace:检查字符是否是空格符、跳格符(控制字符)或换行符。函数原型为int isspace(int ch),返回值为是返回非 0,否则返回 0。
  • isxdigit:检查字符是否是一个 16 进制数学字符(即 0 - 9,或 A - F,或 a - f)。函数原型为int isxdigit(int ch),返回值为是返回非 0,否则返回 0。
  • isascii:测试参数是否是 ASCII 码 0 - 127。函数原型为int isascii(int ch),返回值为是返回非 0,否则返回 0。

以下是一个使用这些函数的例子:

#include <ctype.h>
#include <stdio.h>

int main() {
    char ch;
    printf("输入一个字符:");
    scanf_s("%c", &ch);
    if (isalnum(ch)) {
        printf("%c 是字母或数字.", ch);
    } else {
        printf("%c 不是字母或数字.", ch);
    }
    putchar('\n');
    return 0;
}

效果图

三. errno

errno 是 C 语言标准库中用于表示错误代码的全局变量。

属性

  • 它是一个整数类型的变量。

方法
在 C 标准库中的许多函数,当执行出错时,会设置 errno 的值来指示具体的错误类型。

常见的错误代码

  • EDOM:表示函数的参数超出了定义域。
  • ERANGE:表示函数的结果超出了范围。

示例代码

#include <stdio.h>
#include <math.h>
#include <errno.h>

int main() {
    double num = -1.0;
    double result = sqrt(num);
    if (errno == EDOM) {
        printf("错误:参数不能为负数\n");
    } else {
        printf("平方根:%f\n", result);
    }
    return 0;
}

在上述示例中,对负数求平方根会导致错误,errno 被设置为 EDOM ,从而可以检测到错误并进行相应处理。

效果图

四. float

float.h 是 C 语言标准库中的一个头文件,它提供了有关浮点数类型(如 floatdouble 和 long double)的范围和精度的信息。

属性
包含了一系列定义的宏,用于表示浮点数的各种属性,例如最小正值、最大值、精度等。

方法
本身没有方法,只是通过宏来提供信息。

以下是一些常见的宏和示例代码:

#include <stdio.h>
#include <float.h>

int main() {
    printf("Float 类型的最小值: %e\n", FLT_MIN);
    printf("Float 类型的最大值: %e\n", FLT_MAX);
    printf("Float 类型的精度(小数位数): %d\n", FLT_DIG);

    printf("Double 类型的最小值: %e\n", DBL_MIN);
    printf("Double 类型的最大值: %e\n", DBL_MAX);
    printf("Double 类型的精度(小数位数): %d\n", DBL_DIG);

    printf("Long Double 类型的最小值: %Le\n", LDBL_MIN);
    printf("Long Double 类型的最大值: %Le\n", LDBL_MAX);
    printf("Long Double 类型的精度(小数位数): %d\n", LDBL_DIG);

    return 0;
}

通过这些宏,您可以在编程中根据实际需求合理地处理浮点数,以避免出现溢出、精度不足等问题。

五. limits

limits.h 是 C 标准库中的头文件,用于定义各种整数类型的取值范围和限制。

属性

  • 包含了一系列表示整数类型范围的宏,例如 INT_MINint 类型的最小值)、INT_MAXint 类型的最大值)等。

方法
它本身并没有方法,只是通过宏来提供相关的信息。

以下是一个简单的示例代码,展示了如何使用 limits.h 中的宏:

#include <stdio.h>
#include <limits.h>

int main() {
    printf("int 类型的最小值: %d\n", INT_MIN);
    printf("int 类型的最大值: %d\n", INT_MAX);

    printf("unsigned int 类型的最大值: %u\n", UINT_MAX);

    printf("char 类型的最小值: %d\n", CHAR_MIN);
    printf("char 类型的最大值: %d\n", CHAR_MAX);

    return 0;
}

在这个示例中,我们使用了 limits.h 中定义的宏来输出不同整数类型的取值范围。

六. locale

locale.h 是 C 标准库中的头文件,用于处理本地化相关的设置和操作。
本地化涉及到根据特定的地域或文化习惯来定制程序的行为,例如数字、货币、日期和时间的格式,字符编码,以及文本的排序规则等。

属性

  • 包含了一系列用于设置和获取本地化信息的宏和数据类型。

方法

  • setlocale 函数:用于设置或查询程序的当前本地化环境。
  • localeconv 函数:返回一个包含本地化特定的数字和货币格式信息的结构体。

以下是一个简单的示例代码,展示了如何使用 locale.h 中的函数:

#include <stdio.h>
#include <locale.h>

int main() {
    // 设置本地环境为系统默认
    setlocale(LC_ALL, "");

    struct lconv *locale_info = localeconv();

    printf("本地货币符号: %s\n", locale_info->currency_symbol);
    printf("小数点字符: %c\n", locale_info->decimal_point);

    return 0;
}

请注意,上述示例的输出结果会因您的系统本地化设置而有所不同.

效果图:

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

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

相关文章

晨持绪科技:抖音店铺运营思路

在抖音这个充满活力与创意的平台上&#xff0c;店铺运营不仅仅是一种商业行为&#xff0c;它更是一种艺术的展示。如同画家在画布上勾勒出色彩斑斓的画面&#xff0c;抖音店铺的运营者们也在平台上精心策划着每一个细节&#xff0c;以吸引更多的目光和流量。 内容创作。内容是吸…

注意!!2024《信息系统运行管理员》易混淆知识点来了,赶紧收藏

宝子们&#xff0c;在复习信息系统运行管理员中&#xff0c;是不是觉得有很多知识点含义比较相近&#xff0c;很多友友刚看的时候估计会像我一样迷迷糊糊的&#xff0c;作为一个软考老鸟&#xff0c;在这里给大家整理了信息系统运行管理员学习过程中易混淆的知识点&#xff0c;…

瑞数信息:智能防护新时代,看AI如何筑起网络防线

AI时代&#xff0c;网络安全危与机并行。 尤其是近年来大火的大模型&#xff0c;对于网络安全行业的影响与其他行业有所不同&#xff0c;一方面&#xff0c;AI能够通过大幅降低了安全攻击的门槛&#xff0c;网络威胁的复杂性和多样性不断增加&#xff0c;如自动化攻击、零日漏…

AWS亚马逊云服务器:强大的云计算服务

AWS亚马逊云服务器&#xff08;Amazon Web Services&#xff0c;简称AWS&#xff09;是亚马逊公司推出的一项云计算服务。作为全球领先的云计算服务提供商&#xff0c;AWS为个人、企业提供了稳定、可靠且安全的云计算服务。AWS亚马逊云服务器的出现&#xff0c;极大地改变了传统…

SALOME源码分析:View Model

作为一款开源的CAx(CAD/CAE/CAM)软件集成平台&#xff0c;为了实现各个Module支持不同的数据显示与交互方案&#xff0c;出于扩展性的考虑&#xff0c;SALOME引入了View Model&#xff0c;用以支持OpenGL、OCC、VTK、ParaView、Qwt等数据显示与交互实现。 本文将以OCCViewer、…

电气-伺服(3)伺服选型计算

一、直线运动&#xff1a; 转矩&#xff1a; 二、 旋转运动 线速度和角速度的关系&#xff1a; 三、伺服选型 原则 选型计算步骤 1、转矩计算 常见物体惯量计算&#xff1a; 常见传动机构转动惯量的计算 直接驱动&#xff1a; 案例&#xff1a; 同步带传动&#xff1a; 丝杆…

新加坡博士申请|中国社科院-新加坡社科大学联合培养工商管理博士

新加坡博士申请|中国社科院-新加坡社科大学联合培养工商管理博士 【项目名称】中国社会科学院大学与新加坡新跃社科大学工商管理博士项目 【学制】最短3年&#xff0c;最长不超过7年 【学位证书】新加坡新跃社科大学工商管理博士学位 【招生对象】企业高管、咨询顾问及其他有…

雨量监测站的工作内容是什么?

在现代气象观测体系中&#xff0c;雨量监测站扮演着至关重要的角色。它们不仅为我们提供了关于降水量的关键数据&#xff0c;还帮助我们更好地理解气候模式&#xff0c;预测自然灾害&#xff0c;并优化水资源管理。本文将探讨雨量监测站的工作内容&#xff0c;以及它在气象观测…

Vue + Element UI + JSEncrypt实现简单登录页面

安装依赖 npm install jsencrypt --save局部引入 import JSEncrypt from jsencrypt/bin/jsencrypt;登录页面index.vue <template><div class"loginbody"><div class"logindata"><div class"logintext"><h2>Wel…

《梦醒蝶飞:释放Excel函数与公式的力量》8.3 COUNTBLANK函数

8.3 COUNTBLANK函数 在数据处理和分析中&#xff0c;我们经常需要识别和统计数据集中的空白单元格。COUNTBLANK函数是Excel中用于统计某个范围内空白单元格数量的强大工具。 8.3.1 函数简介 COUNTBLANK函数用于统计指定范围内的空白单元格数量。这在数据清洗、数据完整性检查…

《NATURE丨使用 AlphaFold 3 准确预测生物分子相互作用的结构》

NATURE丨使用 AlphaFold 3 准确预测生物分子相互作用的结构 注意&#xff01;&#xff1a;本文创作仅根据个人理解和网络信息&#xff0c;如有错误恳请指正&#xff01;谢谢&#xff01; 大家好&#xff0c;今天分享的文献是2024年5月发表在Nature上的“ Accurate structure …

大模型学习笔记3【大模型】LLaMA学习笔记

文章目录 学习内容LLaMALLaMA模型结构LLaMA下载和使用好用的开源项目[Chinese-Alpaca](https://github.com/ymcui/Chinese-LLaMA-Alpaca)Chinese-Alpaca使用量化评估 学习内容 完整学习LLaMA LLaMA 2023年2月&#xff0c;由FaceBook公开了LLaMA&#xff0c;包含7B&#xff0…

视频怎么制作gif动态图片?GIF制作方法分享

视频怎么制作gif动态图片&#xff1f;视频制作GIF动态图片&#xff0c;不仅保留了视频的生动瞬间&#xff0c;还赋予了图像循环播放的魔力。这一技能不仅让创意表达更加丰富多彩&#xff0c;还极大地提升了视觉传播的效率和趣味性。在快节奏的数字时代&#xff0c;GIF动图以其小…

(vue)eslint-plugin-vue版本问题 安装axios时npm ERR! code ERESOLVE

(vue)eslint-plugin-vue版本问题 安装axios时npm ERR! code ERESOLVE 解决方法&#xff1a;在命令后面加上 -legacy-peer-deps结果&#xff1a; 解决参考&#xff1a;https://blog.csdn.net/qq_43799531/article/details/131403987

基于springboot的合肥师范学院学生党员发展管理系统的设计与实现-计算机毕业设计源码04831

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…

安华金和—可信数据空间助力公共数据授权运营安全有序开展的实践探索

伴随数字化、网络化和智能化的快速发展&#xff0c;数字经济与实体经济深度融合&#xff0c;数据已然成为经济发展赖以依托的基础性、战略性资源&#xff0c;对社会生产、分配、流通、消费和社会服务管理等各环节产生深刻影响。我国高度重视数字经济发展&#xff0c;将数据列入…

什么是微积分

微积分&#xff0c;英文calculus&#xff0c;源自拉丁语&#xff0c;意为用于计数的小鹅卵石。 微积分都是关于变化的。这句话怎么理解呢&#xff1f;比如说&#xff0c;我们正在路上开着车&#xff0c;问此时此刻的车速是多少&#xff1f;我们可能会去看速度表显示多少。但是…

爬虫笔记19——代理IP的使用

访问网站时IP被阻止 有些网站会设置特定规则来限制用户的访问&#xff0c;例如频率限制、单一账户多次登录等。 网站为了保护自身安全和用户体验&#xff0c;会设置防御机制&#xff0c;将涉嫌恶意行为的IP地址加入黑名单并屏蔽访问。如果用户在使用网站时违反了这些规则&…

[JS]正则表达式

介绍 正则表达式是定义匹配字符串的规则, 在JS中, 正则表达式也是对象, 通常用于查找或替换符合规则的文本 许多语言都支持正则表达式, 在前端中常见的场景就是表单验证和敏感词替换 语法 正则字面量 / / const str 好好学习,天天向上 // 1.定义规则: const reg /好///…

如何保障云计算健康发展

随着云计算技术的日益成熟&#xff0c;云原生技术凭借其“生于云、长于云”的核心理念&#xff0c;已然成为未来十年云计算发展的关键驱动力。这项技术不仅有效应对了传统云实践中应用升级滞后、架构繁重、迭代效率低下等挑战&#xff0c;更为业务创新铺设了坚实的基石。云原生…