C语言-atoi()库函数的模拟实现


前言

本篇文章介绍c语言中库函数atoi()的使用,以及模拟实现库函数。


一、atoi()库函数的介绍及使用

1.1 atoi()库函数介绍

以下是cplusplus网站关于atoi()库函数的介绍。atoi()库函数
在这里插入图片描述
说明:

  • 首先,这个函数会将字符串前面的空格一一跳过,直到遇到非空格字符;这个非空字符分为以下情况

    • 如果非空字符为字母,则返回结果为0
      比如"abc123",转换得到0
    • 如果非空字符为’-',则会转换得到一个负整数且这个负整数没有超过int表示的范围,正常返回这个数;如果这个数超过了int型数据的表示范围,则返回-2147483648
      例如,
      “-12345”,转换得到整型数值-12345
      "-123456789123456"转换得到-2147483648
    • 如果非空字符为‘+’或者为数字字符,则会转换得到一个正整数且这个正整数没有超过int表示的范围,正常返回这个数;如果这个数超过了int型数据的表示范围,则返回2147483647
      例如,
      "+12345"转换得到整型数值12345
      "123456"转换得到整型数值12345
      "123456789123456"转换得到2147483647
  • 如果str指向的是一个空字符串或者只包含空格,则返回值为0.

  • 如果两个数字字符之间存在其他非数字字符,则转换非数字字符之前的数字字符。
    “123ab112”,只会转换得到整型数值123

1.2 atoi()库函数使用

  • 负数转换
    在这里插入图片描述

  • 负数溢出转换
    在这里插入图片描述

  • 正数转换
    在这里插入图片描述

  • 正数溢出转换
    在这里插入图片描述

  • 包含非数字字符
    (1)数字字符后面包含其他字符
    在这里插入图片描述

(2)数字前面包含非数字字符
在这里插入图片描述

  • 只包含非数字字符
    在这里插入图片描述

二、atoi()库函数的模拟实现

2.1 函数设计

函数名:StrToInt
函数返回值类型: int
函数参数类型: const char* str
int StrToInt(const char* str);

2.2 函数实现思路

  1. 函数指针的非空判断
//指针的非空判断 利用断言
assert(str);
  1. 空字符串的判断
//如果第一个字符为'\0',则表示字符串为空串
if('\0' == *str)
{
   
	return 0;
}
  1. 跳过字符串前面的空格字符
//利用库函数提供isspace()函数判断
while(isspace(*str)) str++;
  1. 正数和负数的判断
int flag = 1; //默认为正数
switch
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值