【C语法学习】27 - 字符串转换为数字

news2024/12/27 14:25:53

文章目录

  • 1 atoi()函数
    • 1.1 函数原型
    • 1.2 参数
    • 1.3 返回值
    • 1.4 转换机制
    • 1.5 示例
      • 1.5.1 示例1

1 atoi()函数

1.1 函数原型

atoi():将str指向的字符串转换为整数,函数原型如下:

int atoi(const char *str);

1.2 参数

atoi()函数只有一个参数str:

  1. 参数str是指向要转换为整数的字符串的指针,类型为char*型。

1.3 返回值

atoi()函数的返回值类型为int型。

  1. 转换成功,返回转换后的int型整数;
  2. 转换失败,返回0值。

1.4 转换机制

  1. atoi()函数将str指向的字符串转换为int型整数;
  2. atoi()函数将字符串转换为整数的过程类似于scanf()函数从stdin中读取字符赋值给变量的过程:
    (1)有效字符为±符号和数字字符1-9;
    (2)跳过所有空字符;
    (3)如果第一非空字符是无效字符,则转换失败,返回0值;
    (4)如果第一非空字符是有效字符,则转换继续,直至遇到第一个无效字符为止(无效字符包括字母、标点符号和空字符等)。

C语言标准描述如下:

1. Interprets an integer value in a byte string pointed to by str. 
2. The implied radix is always 10.
3. Discards any whitespace characters until the first non-whitespace character is found, then takes as many characters as possible to form a valid integer number representation and converts them to an integer value. 
4. The valid integer value consists of the following parts:
   --- (optional) plus or minus sign
   --- numeric digits
5. If the value of the result cannot be represented, i.e. the converted value falls out of range of the corresponding return type, the behavior is undefined.

1.5 示例

1.5.1 示例1

代码如下在这里插入代码片所示:

int main()
{

   printf("%d\n", atoi("123"));

   printf("%d\n", atoi("123a"));
   printf("%d\n", atoi("a123"));

   printf("%d\n", atoi(" 123"));
   printf("%d\n", atoi("1 23"));

   printf("%d\n", atoi("+123"));
   printf("%d\n", atoi("-123"));

   printf("%d\n", atoi("1.23"));
   
   printf("%d\n", atoi("2147483648"));

   return 0;
}

代码运行结果如下图所示:

在这里插入图片描述

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

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

相关文章

创建vue项目体验

文章目录 使用vue-cli创建vue项目创建出的项目目录结构配置router 运行问题router未找到eslint报错 首页显示单页面内容替换 使用vue-cli创建vue项目 安装vue-cli,创建基本项目 选择步骤 一般创建成功后,提示使用下面的指令运行demo npm run serve创建…

CVE-2022-21661

简介 CVE-2022-21661是一个与WordPress相关的漏洞,涉及到SQL注入问题。该漏洞主要源于WordPress的WQ_Tax_Query类中的clean_query函数,可能允许攻击者通过控制传递给该函数的数据来控制生成的SQL查询,从而执行任意的SQL代码。 当WordPress的…

什么是高防IP?有什么优势?怎么选择高防IP?

在当今的互联网环境中,分布式拒绝服务(DDoS)攻击已经成为一种常见的安全威胁。这种攻击通过向目标服务器发送大量的无效流量,使其无法处理正常的请求,从而达到迫使服务中断的目的。作为一个用户,你是否曾遇…

Navicat 技术指引 | 适用于 GaussDB 的模型功能

Navicat Premium(16.2.8 Windows版或以上) 已支持对 GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结构同步、协同合作、数据迁移等),这…

在线工具收集

在线工具收集 1、在线P图 https://www.photopea.com/ 一款类似于PS的在线抠图软件 ①去除图片中的文字,并填充背景色 第一步:使用矩形选中要清除的文字 第二步:点击编辑选择填充 第三步:选择内容识别,保留透明区域…

Vatee万腾数字引领未来:vatee科技力量的独特路径

在当今数字化浪潮的推动下,Vatee万腾以其卓越的科技力量,正引领着未来的数字化时代,描绘着一条独特的发展路径。通过持续创新、前瞻思维和对技术的深度理解,Vatee万腾正在为未来的科技发展创造新的可能性,塑造着数字引…

操作系统(七)| 设备管理-- 端口 驱动程序 基本I/O控制 磁盘I/O

文章目录 1 设备管理概述1.1 系统总线结构1.2 设备控制器通用结构1.3 I/O设备的模型 2 I/O端口2.1 寻址方式 3 驱动程序4 基本I/O控制方式4.1 程序直接控制4.2 中断I/O方式4.3 DMA方式4.4 I/O通道控制方式 5 I/O管理中的重要思想5.1 设备独立性5.2 SPOOLing技术5.3 I/O软件的多…

4.18每日一题(极坐标累次积分到直角坐标累次积分的转换)

注:rdr化为直角坐标以后r直接消去了,不需要计算

csapp archlab part 1

part A [rootedb3963640a6 misc]#./yas sum.ys [rootedb3963640a6 misc]# ./yis sum.yo./yas 和 ./yis 是汇编语言编译器和模拟器的命令行工具。 ./yas 是一个汇编语言编译器,它将汇编语言代码转换为可执行的二进制文件。./yas sum.ys 将sum.ys文件编译成了sum.yo可…

Visual NLP:图像信息自动提取的未来

本文旨在以简单的方式解释 Visual NLP 的关键概念,让你了解 Visual NLP 的含义、它的用例是什么、如何使用它以及为什么它是构建自动提取管道的未来 。 NSDT在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在…

【坑】JDK21虚拟线程不支持run方法

【坑】JDK21虚拟线程不支持run方法 run // do nothing java.lang.VirtualThread Overridepublic void start() {start(ThreadContainers.root());}Overridepublic void run() {// do nothing}

租车系统开发/多功能租车平台微信小程序源码/汽车租赁系统源码/汽车租赁小程序系统

源码介绍: 多功能租车平台微信小程序源码,作为汽车租赁、摩托车租车平台系统源码,是小程序系统。基于微信小程序的汽车租赁系统源码。 开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclip…

和鲸全程支持:第二届粤港澳大湾区(黄埔)国际算法算例大赛初赛赛程圆满收官!

随着新一轮科技革命与产业变革的加速演进,算法,作为一种战略性的科技、生产要素,已成为推动数字技术与实体经济深度融合的核心支撑。为助力地区大数据与人工智能算法的生态体系建设、赋能社会经济的高质量发展,琶洲实验室&#xf…

k8s部署的java服务查看连接nacos缓存的配置文件

一、问题描述 k8s部署的java服务,使用nacos中的配置文件,需要在缓存中查看该服务具体是使用到了哪些配置文件 二、解决 参考文档: https://nacos.io/zh-cn/docs/system-configurations.html 文档描述如下: 进入java服务容器进入用户目录下的nacos&a…

Caused: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:8080

1、启动jenkins报错,执行命令jenkins报错如下 2、检查8080端口是否被占用,若被占用直接关掉。 lsof -i:8080

React16中打印事件对象取不到值的现象及其原因分析

React16中打印事件对象取不到值的现象及其原因分析 一、背景 在最近的开发过程中&#xff0c;遇到了一个看起来匪夷所思的问题❓&#xff1a; <Inputplaceholder"请输入"onChange{(e) > {console.log(e:, e)}}onKeyDown{handleKeyDown} />此时按理来说我…

yoloV5模型中,x,s,n,m,l之间区别

避免误导大家,从小到大顺序为:n,s,m,l,x YOLOv5 的不同变体(如 YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x 和 YOLOv5n)表示不同大小和复杂性的模型。这些变体在速度和准确度之间提供了不同的权衡,以适应不同的计算能力和实时性需求。下面简要介绍这些变体的区别: YOLOv5s:这…

华清远见嵌入式学习——网络编程——作业4

作业要求&#xff1a;①使用IO多路复用中的select函数实现TCP并发服务器客户端 ②使用IO多路复用中的poll函数实现TCP并发服务器的服务器端 一、 代码 #include <myhead.h>#define SERPORT 8888 //服务器端口号 #define SERIP "192.168.114.113"…

python二叉树链树_树的链式存储结构

二叉链树是一种树状数据结构&#xff0c;其中每个节点最多有两个子节点&#xff0c;分别称为左子节点和右子节点。每个节点包含一个数据元素和指向其左右子节点的指针。二叉链树可以是空树&#xff0c;也可以是具有以下特点的非空树&#xff1a; 1. 每个节点最多有两个子节点。…

【AGC】集成AGC服务上架应用市场审核问题

【关键字】 AGC、应用市场、审核 【问题描述】 集成了AGC服务&#xff0c;上架到应用市场不通过&#xff0c;检查发现是com.huawei.secure.android.common.ssl.util.c.doInBackground 存在获取安装列表行为。 已经按照sdk 设置了&#xff0c;但是检测还是有授权前去获取安装列…