C语言-atoi和atof函数的使用

2024-04-28 21:44
文章标签 语言 函数 使用 atoi atof

本文主要是介绍C语言-atoi和atof函数的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

人生应该树立目标,否则你的精力会白白浪费。💓💓💓

目录

 •🌙知识回顾

 🍋知识点一:atoi函数的使用和实现

  • 🌰1.函数介绍

  • 🌰2.代码演示

  • 🌰3.atoi函数的实现

  • 🌰3.扩展

 🍋知识点二:atof函数的使用

  • 🌰1.函数介绍

   • 🌰2.代码演示

  •🌙Conclude结尾


 •🌙知识回顾

亲爱的读者们大家好!💖💖💖,我们今天介绍两个比较简单的函数,也算是对前面几期较难内容的放松,上一篇文章我们详细解析了C语言中动态内存管理的相关知识,包括malloc,calloc,realloc等,希望大家能够掌握并应用~

    

今天这篇文章给大家带来的是C语言中的两个函数,atoi和atof这是两个函数还是会见到的,虽然不是我们很经常使用的函数,但我们也不能放任不管,掉以轻心,也许什么时候就用到了,希望大家好好学习,也希望可以给大家带来帮助。

  

👇👇👇
💘💘💘知识连线时刻(直接点击即可)

  🎉🎉🎉复习回顾🎉🎉🎉

        C语言-动态内存分配

博主主页传送门:愿天垂怜的博客

 🍋知识点一:atoi函数的使用和实现

  • 🌰1.函数介绍

int atoi (const char * str);

🔥功能:

1.解析字符串的内容,将字符串转化成整数

2.atoi的使用需要包含头文件 <stdlib.h>

🔥参数:

str:指针,指向了待转化的字符串

🔥返回值:

转化成功的话,返回转化得到的整数,如果是空字符串或者是跳过空白字符后第一个不是数字字符将返回0,如果转化得到数字超出int的取值范围,则是未定义的行为。

  • 🌰2.代码演示

#include <stdio.h>
#include <stdlib.h>int main()
{printf("%d\n", atoi(" "));printf("%d\n", atoi("	abc"));printf("%d\n", atoi("123"));printf("%d\n", atoi("		123"));printf("%d\n", atoi("		+123"));printf("%d\n", atoi("		-123"));printf("%d\n", atoi("		-123abc"));printf("%d\n", atoi("111111111111111111111111111"));//行为未定义return 0;
}

输出结果:

0
0
123
123
123
-123
-123
2147483647

  • 🌰3.atoi函数的实现

atoi函数的模拟实现可能有些复杂,但一定要理清思路:要先跳过空白字符,再看有无+-,如果有还需考虑最后的符号,用flag记录;同时ret值不能大于最大,也不能小于最小。

int my_atoi(const char* str)
{//跳过空白字符while (isspace(*str))str++;//判断正负符号int flag = 1;if (*str == '+'){str++;}else if (*str == '-'){flag = -1;str++;}//用ret记录值long ret = 0;while (*str != '\0'){//判断是否是数字字符if (isdigit(*str)){//转化为整型,如'1'-'0'=1ret = ret * 10 + (*str - '0') * flag;//最大只能INT_MAX,最小只能INT_MINif (ret > INT_MAX){ret = INT_MAX;}else if (ret < INT_MIN){ret = INT_MIN;}}elsereturn (int)ret;str++;}return (int)ret;
}

  • 🌰3.扩展

其实还有两个函数可以了解一下:

🔥atol:将字符串转换成long类型,转换的范围是比atoi要更大一些。

🔥strtol:将字符串转换成long类型,这个函数更加复杂,可以按照各种进制转换。

可以扩展学习一下。

 🍋知识点二:atof函数的使用

  • 🌰1.函数介绍

double atof(const char* str);

🔥功能:

1.atof函数用于将字符串转换为浮点数(double类型)。

2.它解析字符中的数字部分,并将其转换相应的浮点数表示。

3.该函数在<stdlib.h>头文件中声明。

🔥参数:

str:指针,指向待转换的字符串,它可以包含可选的正负号、整数部分、小数部分和指数部分。

🔥返回值:
atof:函数的返回值类型是double,表示成功转换的浮点数。

   • 🌰2.代码演示

#include <stdio.h>
#include <stdlib.h>int main()
{printf("%lf\n", atof("123.45"));printf("%lf\n", atof("+123.45"));printf("%lf\n", atof("-123.45"));printf("%lf\n", atof("		-123.45"));printf("%lf\n", atof("3.14E-2"));//3.14*10^-2 = 0.0314printf("%lf\n", atof("hehe"));return 0;
}

输出结果:

123.450000
123.450000
-123.450000
-123.450000
0.031400
0.000000

  •🌙Conclude结尾

这篇内容相对简单,但还是希望大家能够熟练应用并掌握它们的基本用法,其中atof的模拟实现较为复杂,因为要考虑科学计数法的情况,大家有兴趣可以自行探讨~

 

这篇关于C语言-atoi和atof函数的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944337

相关文章

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

python之uv使用详解

《python之uv使用详解》文章介绍uv在Ubuntu上用于Python项目管理,涵盖安装、初始化、依赖管理、运行调试及Docker应用,强调CI中使用--locked确保依赖一致性... 目录安装与更新standalonepip 安装创建php以及初始化项目依赖管理uv run直接在命令行运行pytho

MySQL中REPLACE函数与语句举例详解

《MySQL中REPLACE函数与语句举例详解》在MySQL中REPLACE函数是一个用于处理字符串的强大工具,它的主要功能是替换字符串中的某些子字符串,:本文主要介绍MySQL中REPLACE函... 目录一、REPLACE()函数语法:参数说明:功能说明:示例:二、REPLACE INTO语句语法:参数

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Kotlin 枚举类使用举例

《Kotlin枚举类使用举例》枚举类(EnumClasses)是Kotlin中用于定义固定集合值的特殊类,它表示一组命名的常量,每个枚举常量都是该类的单例实例,接下来通过本文给大家介绍Kotl... 目录一、编程枚举类核心概念二、基础语法与特性1. 基本定义2. 带参数的枚举3. 实现接口4. 内置属性三、

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点

MySQL中优化CPU使用的详细指南

《MySQL中优化CPU使用的详细指南》优化MySQL的CPU使用可以显著提高数据库的性能和响应时间,本文为大家整理了一些优化CPU使用的方法,大家可以根据需要进行选择... 目录一、优化查询和索引1.1 优化查询语句1.2 创建和优化索引1.3 避免全表扫描二、调整mysql配置参数2.1 调整线程数2.