C常用标准库及函数

2023-11-14

常用头文件:

stdio.h

stdlib.h

ctype.h

string.h

math.h

system.h


1、stdio库:主要功能是输入输出操作,包括文件输入输出,标准输入输出。

输出函数: int puts(const char* str) 把一个字符串写出到标准输出

int printf(char *format,args,…)  把args,…的值以format指定的格式输出到标准输出设备,输出字符的个数

用\0替换为\n换行符


输入函数:char* gets(char* str)从标准输入读一行数据知道换行符才结束

FILE *fopen(char *filename,char *mode)  以mode指定的方式打开名为filename的文件,返回值:成功,返回文件指针(文件信息区的起始地址),否则返回NULL

将\n替换为\0


2、ctype库

字符函数:定义了一批C语言字符分类函数,用于测试字符是否属于特定的字符。

字符测试函数:

函数原型均为 int is***(int a)

只能正确处理 【0,127】之间的数值

参数为int,任何实参均被提升成整型

字符映射函数:

函数原型 int to***(int a)

对参数进行检测,符合范围则转换,否则不变。

调用字符函数时,要求在源文件中包下以下命令行:

#include <ctype.h>

函数原型说明

功能

返回值

int isalnum(int ch)

检查ch是否为字母或数字

是,返回1;否则返回0

int isalpha(int ch)

检查ch是否为字母

是,返回1;否则返回0

int iscntrl(int ch)

检查ch是否为控制字符

是,返回1;否则返回0

int isdigit(int ch)

检查ch是否为数字

是,返回1;否则返回0

int isgraph(int ch)

检查ch是否为ASCII码值在ox21到ox7e的可打印字符(即不包含空格字符)

是,返回1;否则返回0

int islower(int ch)

检查ch是否为小写字母

是,返回1;否则返回0

int isprint(int ch)

检查ch是否为包含空格符在内的可打印字符

是,返回1;否则返回0

int ispunct(int ch)

检查ch是否为除了空格、字母、数字之外的可打印字符

是,返回1;否则返回0

int isspace(int ch)

检查ch是否为空格、制表或换行符

是,返回1;否则返回0

int isupper(int ch)

检查ch是否为大写字母

是,返回1;否则返回0

int isxdigit(int ch)

检查ch是否为16进制数

是,返回1;否则返回0

int tolower(int ch)

把ch中的字母转换成小写字母

返回对应的小写字母

int toupper(int ch)

把ch中的字母转换成大写字母

返回对应的大写字母

3、字符串处理函数库,#include <string.h>

函数原型说明

功能

返回值

char *strcat(char *s1,char *s2)

把字符串s2接到s1后面

s1所指地址

char *strchr(char *s,int ch)

在s所指字符串中,找出第一次出现字符ch的位置

返回找到的字符的地址,找不到返回NULL

int strcmp(char *s1,char *s2)

对s1和s2所指字符串进行比较

s1<s2,返回负数;s1= =s2,返回0;s1>s2,返回正数

char *strcpy(char *s1,char *s2)

把s2指向的串复制到s1指向的空间

s1 所指地址

unsigned strlen(char *s)

求字符串s的长度

返回串中字符(不计最后的'\0')个数

char *strstr(char *s1,char *s2)

在s1所指字符串中,找出字符串s2第一次出现的位置

返回找到的字符串的地址,找不到返回NULL

4、math.h 数学库

函数原型说明

功能

返回值

说明

int abs( int x)

求整数x的绝对值

计算结果

 

double fabs(double x)

求双精度实数x的绝对值

计算结果

 

double acos(double x)

计算cos-1(x)的值

计算结果

x在-1~1范围内

double asin(double x)

计算sin-1(x)的值

计算结果

x在-1~1范围内

double atan(double x)

计算tan-1(x)的值

计算结果

 

double atan2(double x)

计算tan-1(x/y)的值

计算结果

 

double cos(double x)

计算cos(x)的值

计算结果

x的单位为弧度

double cosh(double x)

计算双曲余弦cosh(x)的值

计算结果

 

double exp(double x)

求ex的值

计算结果

 

double fabs(double x)

求双精度实数x的绝对值

计算结果

 

double floor(double x)

求不大于双精度实数x的最大整数

 

 

double fmod(double x,double y)

求x/y整除后的双精度余数

 

 

double frexp(double val,int *exp)

把双精度val分解尾数和以2为底的指数n,即val=x*2n,n存放在exp所指的变量中

返回位数x

0.5≤x<1

 

double log(double x)

求㏑x

计算结果

x>0

double log10(double x)

求log10x

计算结果

x>0

double modf(double val,double *ip)

把双精度val分解成整数部分和小数部分,整数部分存放在ip所指的变量中

返回小数部分

 

double pow(double x,double y)

计算xy的值

计算结果

 

double sin(double x)

计算sin(x)的值

计算结果

x的单位为弧度

double sinh(double x)

计算x的双曲正弦函数sinh(x)的值

计算结果

 

double sqrt(double x)

计算x的开方

计算结果

x≥0

double tan(double x)

计算tan(x)

计算结果

 

double tanh(double x)

计算x的双曲正切函数tanh(x)的值

计算结果

 

5、stdlib.h

字符串转换

double atof (const char*);

int atoi (const char*);
long atol (const char*);
double strtod (const char*, char**);
long strtol (const char*, char**, int);

unsigned long strtoul (const char*, char**, int);

随机数

内存管理

环境接口:

void abort (void);
void exit (int);
int atexit (void (*)(void));

int system (const char*);
char* getenv (const char*);


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C常用标准库及函数 的相关文章

  • Nacos、Eureka和Zookeeper有什么区别

    Nacos Eureka和Zookeeper都是服务注册中心 它们的主要功能是管理分布式系统中各个微服务实例的注册与发现 它们之间的主要区别在于 1 语言支持 Nacos是用Java语言开发的 Eureka是用Java语言开发的 Zooke
  • Opencv4基于C++的 实时人脸监测

    文章目录 一 环境配置搭建 VS2015 Opencv4 6 二 下资源文件 第一种 本地生成 第二种 直接下载 三 代码展示 窗口布局 main cpp test h test cpp 效果图 opencv人脸识别效果图 请叫我真爱粉 一
  • 二进制部署高可用k8s集群

    一 前置知识点 1 1 环境准备 服务器要求 建议最小硬件配置 2核CPU 2G内存 30G硬盘 软件环境 软件 版本 操作系统 CentOS7 x x64 容器引擎 Docker CE 19 Kubernetes Kubernetes v
  • lambda

    外部变量访问方式说明符 不捕获任何变量 以引用方式捕获所有变量 用值的方式捕获所有变量 可能被编译器优化为const foo 以引用捕获foo 但其余变量都靠值捕获 foo 以值捕获foo 但其余变量都靠引用捕获 bar 以值方式捕获bar
  • 查看虚拟机CentOS7 的 IP 地址

    在CentOS7中我们不能输入ifconfig命令查看 而是要输入ip addr命令查看 此命令会出现3个条目 centos的ip地址是ens33条目中的inet值 发现 ens33 没有 inet 这个属性 那么就没法通过IP地址连接虚拟
  • Android 获取电池容量 mAh

    1 Java 反射获取电池容量 目前手机出厂下配置电池容量主要是通过修改 power profile xml 的电池容量参数 一般Google 默认配置为 1000 mAh 故只要是出货的手机一般都需要修改该值 我们可以直接导出 frame
  • 名人问题 (Celebrity problem)

    问题 在一个房间里有 N 个人 其中一个是名人 所谓名人就是大家都认识他 但是他不认识任何人 其它人可能认识房间里面另外的一部分人 你可以问任何人问题 但是问题只能是 你认识 X 吗 对方回答 Yes or No 请问最少要问多少个问题才能
  • MySQL 视图(view)

    目录 视图 概念 基本使用 视图规则和限制 视图 view 概念 视图是一个虚拟表 其内容由查询定义 同真实的表一样 视图包含一系列带有名称的列和行数据 视图的数据变化会影响到基表 基表的数据变化也会影响到视图 基本使用 创建视图 crea
  • Pytest系列 - fixture的详细使用

    前言 前面一篇讲了setup teardown可以实现在执行用例前或结束后加入一些操作 但这种都是针对整个脚本全局生效的 如果有以下场景 用例 1 需要先登录 用例 2 不需要登录 用例 3 需要先登录 很显然无法用 setup 和 tea
  • 高德地图开放平台——行政区划分DistrictSearch 准确定位区域,指定某一城市的行政区

    当搜索宝山区时 会定位到赤峰市的元宝山区 然而想要的是上海市宝山区 解决办法 利用AMap PlaceSearch获得行政区号adcode 用adcode来搜索对应的区域 这里利用了AMap PlaceSearch支持模糊搜索的功能 且AM
  • RPC框架详解

    第一部分 RPC框架 1 Socket回顾与I 0模型 1 1 Socket网络编程回顾 Socket 套接字就是两台主机之间逻辑连接的端点 TCP IP协议是传输层协议 主要解决数据如何在网络中传输 而HTTP是应用层协议 主要解决如何包
  • 20个常用模拟电路(详细分析)

    一 桥式整流电路 1二极管的单向导电性 二极管的PN结加正向电压 处于导通状态 加反向电压 处于截止状态 伏安特性曲线 理想开关模型和恒压降模型 理想模型指的是在二极管正向偏置时 其管压降为0 而当其反向偏置时 认为它的电阻为无穷大 电流为
  • 渗透测试工具之Layer子域名挖掘机

    目录 前言 1 Layer介绍 2 子域名介绍 3 挖掘子域名的作用 4 下载地址 5 工具使用 前言 每篇一句话 困难像弹簧 你强它就弱 你弱它就强 这里是小葵花的学习之路 博客主页 小葵花学堂 文章为个人笔记 若其中如有内容不规范或讲解
  • Python 代码规范

    前言 Python 学习之旅 先来看看 Python 的代码规范 让自己先有个意识 而且在往后的学习中慢慢养成习惯 目录 Python代码规范 一 简明概述 1 编码 如无特殊情况 文件一律使用 UTF 8 编码 如无特殊情况 文件头部必须

随机推荐

  • vs+qt程序添加cmd窗口

    概述 在项目开发过程中为方便查看一些调试信息 可以在运行时把命令行窗口同时显示出来 操作说明 项目右键选择属性 项目 属性 配置属性 链接器 系统 子系统 下拉选项中选择控制台 当不需要打 cmd 的时候设置子系统为窗口 SUBSYSTEM
  • EasyAR4.0稀疏空间地图室内导航

    现有的AR室内导航 一种方案是利用运动跟踪实现 但是偏移较大 比较靠谱或者说能满足商业使用的还是稀疏空间地图 ARCore管叫云锚点 实现效果如下 EasyAR稀疏云地图室内导航 制作思路其实很简单 先建立空间地图 然后利用平面图像追踪在空
  • PPTP 理解以及报文的分析

    首先 先来理解下什么是 PPTP PPTP将PPP Point to Point Protocol 帧封装进IP数据报中 通过IP网络如Internet或其他企业专用Intranet等发送 PPTP通过PPTP控制连接来创建 维护 终止一条
  • Dialog显示报错:Unable to add window -- token null is not valid; is your activity running?

    很平常的显示一个dialog 出现了如上报错 网上很多都说解决方案 但是没有说原理过程 简单的说下 在显示dialog时出现 是应用没有token所导致 而应用的token一般只有Activity拥有 所以需要用Activity作为cont
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • C语言,使用函数封装,实现单词的逆置 “hello my student” 最终结果是”student my hello”

    实现单词的逆置 hello my student 最终结果是 student my hello 在该函数 void StrFun char str 循环字符串的 在该函数 void StrRev char str 主要是实现逆置的 incl
  • 超详细的Linux基础命令

    文章目录 前言 Linux目录结构 Linux命令通用格式 ls 命令 什么是工作目录 什么是 HOME 目录 目录切换相关命令 cd 命令 pwd 命令 特殊的路径符 创建目录 文件操作相关命令 touch 命令 cat 命令 more
  • java 日历_java的日历类(Calendar)详解

    老实说对于时间的处理我大部分都在用Calendar日历类解决 现在整理一下 方便以后开发查阅 java util 类 Calendar java lang Object 继承者 java util Calendar 所有已实现的接口 Ser
  • 火线 地线 零线 漫谈

    交流电不分正负 那为什么又要分火线和零线呢 零线的对地电位不一定为零 接近0 零线的最近接地点是在变电所或者供电的变压器处 交流电正半周火线电压为220v 零线接近0v 正 负半周时火线电压为负220v 零线电压接近0V 负 所以二相插座不
  • 此URL不支持Http方法GET 详情 请求行中接收的方法由源服务器知道,但目标资源不支持 解决方法之一

    因为response和request位置反了 这里位置反了所以doGet是灰的 换了个位置就好了 具体原因https www it1352 com 982509 html
  • 深入理解 Spring Boot Starters 原理(手写Spring boot Start)

    版权声明 本文为博主原创文章 遵循 CC 4 0 by sa 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net zhaohong bo article details 89924053 一 Spri
  • 英特尔的集显和Nvidia的独显切换(切换之后永久有效)

    参考网址 https blog csdn net a850565178 article details 107979314 前提介绍 安装了nvidia驱动之后 有些电脑会发现setting的devices的Graphics显示的还是llv
  • SmartAndroid之SmartJump,告别onActivityResult

    SmartJump 需求 应用场景 实现思路 代码 调用示例 后记 需求 在跳转到另一个Activity后 通过回调直接获取到数据 应用场景 普通的activity跳转 回调获取数据可以使逻辑更清晰 第三方库中activity数据回调可以让
  • 实战案列:AntiDebug

    往期推荐 self debugging反调试 轮循检测技术 进程名称检测 Java层反调试 Anti Debug主要是通过各种函数去确定当前进程是否处于被调试的状态 一 IDA里面静态分析so文件 1 将文件拖入jdax gui中 进行静态
  • PLSQL字体设置常见问题

    PLSQL字体设置常见问题 从网络资源下载的PLSQL 字体默认的大小不太适合大屏幕的电脑 因为看起来字体很小 我们可打开PLSQL来设置字体的大小以及其他常规设置 一 字体太小 操作流程 菜单栏的Tools gt Preferences
  • 静态多态和动态多态

    多态 静态多态和动态多态 多态的实现主要分为静态多态和动态多态 静态多态主要是重载和模板 在编译的时候就已经确定 动态多态是用虚函数机制实现的 在运行期间动态绑定 举个例子 一个父类类型的指针指向一个子类对象时候 使用父类的指针去调用子类中
  • vue学习 十二 vue文件目录知晓 or 组件嵌套

    说明 我使用的是HBuilder 软件能用就可以了 查看顺序是 index html 入口文件 gt main js gt App vue 模板文件 可以看出能显示出欢迎页面 还有那个大V都在这里可以看到 gt components 自定义
  • Redis DEL删除命令是否会导致阻塞

    DEL命令是存在阻塞的可能性的 1 使用DEL命令删除key DEL keya keyb keyc 2 根据删除的key的数量和类型 操作的时间复杂度不同 删除N个key key中的数量为M则时间复杂度是O N M 删除一个字符串的key则
  • 类中有引用需要注意——非静态的引用成员错误提示,不能使用默认的赋值运算符

    我们知道 当我们我们没有定义赋值操作符时 编译器会生成一个默认的赋值操作符执行浅拷贝 就像默认构造函数一样是编译器默认生成的 而如果勒种有引用就需要注意一个大大的误区 我们知道引用在定义的时候就需要初始化 指定这个引用变量是哪个变量的别名
  • C常用标准库及函数

    常用头文件 stdio h stdlib h ctype h string h math h system h 1 stdio库 主要功能是输入输出操作 包括文件输入输出 标准输入输出 输出函数 int puts const char st