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

文章目录

  • 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.hqwc.cn/news/209564.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab使用scatter函数画图时报错“数组索引必须为正整数或逻辑值”解决办法

一、背景 在使用matlab的scatter函数画图时报错“数组索引必须为正整数或逻辑值”。 scatter函数说明:scatter(x,y) 在向量 x 和 y 指定的位置创建一个包含圆形标记的散点图。 二、解决办法 如果使用scatter函数时报上述错误,尝试将连续函数先转换为函…

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

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

AI如何帮助IT领导者优化成本和降低风险

围绕AI的兴奋和好奇心-以及随之而来的可能性-让整个行业沸沸扬扬,结果不言而喻,32%的IT领导者表示,集成AI是2023年的首要任务,其次是降低安全风险(31%)和降低IT成本(29%)。 虽然在可预见的未来,AI可能是IT领导者的首要…

玻璃加工ERP包含些模块?玻璃加工ERP好用吗

玻璃制品的类型多、规格不一、营销策略灵活、销售渠道广泛、生产关联业务环节。在当今这个市场竞争日益激烈的时代,如何有效整合各个业务环节,提升多部门协作效率,随时进行数据分析等,是每个玻璃加工企业面临的管理难题。 在数字…

2023年全国大学生数学建模竞赛总结

2023年全国大学生数学建模竞赛总结 一.参赛经历二.组队建议赛前准备建模手所需要具备的知识 编程手需要具备的能力 论文手论文手需要学习的知识 比赛过程 全国大学生数学建模竞赛的比赛落下了帷幕,很荣幸我能够获得国家二等奖,这对于我们队伍来说是十分荣幸的,接下来让我进行我…

OpenStack-train版安装之基础组件安装

基础组件安装 安装MariaDB(数据库)安装RabbitMQ(消息队列)安装Memcached(缓存) 安装MariaDB(数据库) 安装 # yum install mariadb mariadb-server python2-PyMySQL -y数据库配置 …

win10底部任务栏无响应?试试这些方法!

win10的任务栏是一个关键的用户界面元素,允许您轻松访问应用程序和系统功能。然而,有时您可能会遇到win10底部任务栏无响应的问题,这会妨碍您的工作流程。本篇文章将介绍解决win 10底部任务栏无响应的问题的三种方法,每种方法都会…

基准电压源的工作原理和作用是什么(高精度电压源)

基准电压源是一种能够提供固定、稳定的直流电压输出的电源设备。它广泛应用于精密仪器、测试设备、通信设备等领域,是实现精确电压测量和校准的重要工具。本文将为您介绍基准电压源的工作原理和作用。 一、基准电压源的工作原理 基准电压源采用了高精度的电路设计和…

Navicat 技术指引 | GaussDB 数据查看器

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

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可…

opencv-分水岭算法分割

原理 任何一副灰度图像都可以被看成拓扑平面,灰度值高的区域可以被看成是山峰,灰度值低的区域可以被看成是山谷。我们向每一个山谷中灌不同颜色的水。随着水的位的升高,不同山谷的水就会相遇汇合,为了防止不同山谷的水汇合&#x…

智能头盔天眼摄像头、单兵执法记录仪等配合MESH自组网在应急指挥调度中的应用

智能头盔、天眼摄像头、头盔记录仪、头盔摄像头、单兵执法记录仪等配合MESH自组网在应急指挥调度中的应用。 20人背负单兵自组网(带手咪)到训练场,戴头盔,头盔上放头盔式摄像头,大功率自组网设置在制高点,…