atoi函数及模拟实现

这篇具有很好参考价值的文章主要介绍了atoi函数及模拟实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

✅博客主页:爆打维c-CSDN博客​​​​​​ 🐾

🔹分享c语言知识及代码 

文章目录

一、atoi函数的简要介绍

1.函数原型

二、atoi函数的使用示例

💠正数示例:

💠负数示例:

💠带有符号示例:

💠无效输入示例:

三、模拟实现atoi

1.思路

2.实现代码

总结:


一、atoi函数的简要介绍

1.函数原型

▪️ atoi(ascii to integer)是C语言中的一个库函数,用于将字符串转换为对应的整数。

▪️ 规则是:跳过不可见字符,碰到负号或者数字开始转换,转换到非数字字符为止。

头文件<stdlib.h>

int atoi (const char * str); 

原文:

atoi函数及模拟实现,java,javascript,前端

译文:

atoi函数及模拟实现,java,javascript,前端


二、atoi函数的使用示例

 当使用atoi函数将字符串转换为整数时,不同情况会导致不同的结果。以下是一些示例和解释:

💠正数示例:

const char *str1 = "12345";
int num1 = atoi(str1);
// 输出: num1 = 12345

在这个示例中,输入的字符串是一个正数,atoi函数将其转换为对应的整数。

💠负数示例:

const char *str2 = "-9876";
int num2 = atoi(str2);
// 输出: num2 = -9876

在这个示例中,输入的字符串是一个负数,atoi函数将其转换为对应的负整数。

💠带有符号示例:

const char *str3 = "+42";
int num3 = atoi(str3);
// 输出: num3 = 42

在这个示例中,输入的字符串带有正号,atoi函数会忽略正号并将其转换为对应的整数。

💠无效输入示例:

const char *str4 = "12abc";
int num4 = atoi(str4);
// 输出: num4 = 12

在这个示例中,输入的字符串以有效的数字开头,但后面包含了非数字字符。atoi函数会在遇到非数字字符时停止转换,返回之前已转换的数字部分。

大家也可以自己敲代码试验atoi函数的使用:

atoi函数及模拟实现,java,javascript,前端


三、模拟实现atoi

1.思路

有了上述对atoi函数比较清晰的了解,再进行模拟实现就不难了,思路如下
🔸首先判断 字符串是否为空或者空指针,若是则返回0。
🔸跳过空格位
🔸判断字符串的字符是否为正号或负号,若是则记录下符号,并将指针后移一位。
🔸遍历字符串的每个字符,若字符为数字,则将其转换为对应的整数,并累加到结果中。若遇到非数字字符,停止遍历。
🔸根据之前记录的符号,若为负号,则将结果取反。

2.实现代码

int My_atoi(const char*s){
    int sign = 1; 
    //为空或空指针返回 0
    if (s == NULL || *s == '\0') {
        return 0;
    }
    //跳过空格
    while(*s == ' ') {
        s++;
    }
    //判断符号位
    if (*s == '-'||*s=='+') {
        if (*s == '-') {
            sign = -1;
        }
        s++;
    }
    int result = 0;  //计算结果
    while (*s) {
        if (*s > '9' || *s < '0') {
            break;
        }
        else {
            //*s = *s - '0';
            result = result * 10 +( *s-'0'); //转换为对应的整数,并累加
            s++; 
        }
    }
    return result*sign;
}

总结:

需要注意的是,atoi函数的返回值为int类型。当遇到无效输入或非数字字符时,atoi函数会返回0。这意味着在处理可能包含无效输入的字符串时,应该注意检查返回值来判断转换是否成功。

另外,需要注意atoi函数没有处理整数溢出的能力。如果转换的结果超出了int类型的范围,将导致结果不准确。为了处理溢出情况,可以考虑使用更强大的函数,如strtol函数,它提供了更多的错误处理和转换控制选项。文章来源地址https://www.toymoban.com/news/detail-841780.html

到了这里,关于atoi函数及模拟实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【c语言】atoi的模拟实现

    atoi() 是 C语言的一个标准库函数,定义在stdlib.h头文件中 具体来讲,atoi() 函数首先会丢弃尽可能多的空白字符,直至找到第一个非空白字符,然后从该字符开始,识别 “+”、“-” 以及 0-9 之间的十进制数,最后将它们转换成整数。如果构成整数的后面还有其它字符,这些字

    2024年02月08日
    浏览(28)
  • C语言 实现atoi函数

    函数int atoi(char *str);  使用ubuntu进行多文件编译(main.c  head.h   test.c) head.h(预处理) main.c(主函数) test.c(自定义函数)

    2024年02月10日
    浏览(30)
  • C语言-atoi函数的使用和实现

    atoi是C语言中常见的函数。大家可能对于他不太熟悉,其主要还是因为学校可能没有讲到。其实有很多函数像atol、atof都是一样的,本篇文章以atoi为例,剩余大家如果感兴趣可以再去了解。 目录 1.函数介绍 2.代码演示 3.atoi函数的模拟实现 4.扩展 功能: 1.解析字符串的内容,

    2024年04月25日
    浏览(24)
  • java实现大气污染排放传输路径模拟(iClientOpenlayer前端渲染)

    开头先看下模拟实现效果图   一、技术应用及背景说明 了解大气污染传输路径模拟可以帮助我们更好地了解空气污染的来源和传播方式,从而采取更有效的控制措施。这种模拟技术可以根据大气环境和气象条件,模拟出污染物在大气中的传播路径和影响范围,提供科学依据

    2024年02月03日
    浏览(31)
  • 【LeetCode】字符串转换整数 (atoi) [M](模拟)

    8. 字符串转换整数 (atoi) - 力扣(LeetCode) 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负

    2024年02月07日
    浏览(55)
  • C 库函数 - atoi()

    C 库函数  int atoi(const char *str)  把参数  str  所指向的字符串转换为一个整数(类型为 int 型)。 结果

    2024年02月11日
    浏览(32)
  • C语言atoi函数详解

    atoi是C/C++语言中一个常用的字符串转整数的函数,其原型定义在stdlib.h头文件中。它的作用是将一个字符串表示的数字转换为对应的整数。 函数原型: int atoi(const char* str);   参数: str:要转换的字符串。 返回值: 如果成功,则返回相应的整数值; 如果发生错误,则返回0。

    2024年02月02日
    浏览(27)
  • C语言——atoi函数解析

    目录 前言 atoi函数的介绍 atoi函数的使用 atoi函数的模拟实现 前言 对于 atoi 函数大家可能会有些陌生,不过当你选择并阅读到这里时,请往下阅读,我相信你能对 atoi 函数熟悉 该函数的头文件为 stdlib.h  或  cstdlib atoi函数的介绍 此函数的功能是将数字字符的字符串转化为字

    2024年01月19日
    浏览(30)
  • atof()、atoi()、atol()函数【详解】

    本期介绍🍖 主要介绍:atof()、atoi()、atol()函数是如何使用的,分别有那些功能,以及在使用时一些值得注意的点。👀    C语言提供了一些可以将数字字符串转换成数字的一些库函数,例如atof()、atoi()、atol()函数。下面分别介绍这些函数的功能: atof()函数 :将字符串转换

    2024年02月06日
    浏览(31)
  • 前端Javascript | 数组值随机选择函数

    为了解决 postman 传参数据定制化,需要写一点前置脚本,有用到随机选取数组中的值来造数据。

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包