<<C>>模拟atoi函数

简介: <<C>>模拟atoi函数

1.了解atoi函数

函数库:<stdlib.h>

atoi()函数的功能:将字符串转换成整型数

atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数),转换失败返回0

2.模拟实现

头文件:

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h>


主函数代码:

1. int main()
2. {
3.  char arr[20] = { "a-21432avb" };
4.  printf("%d",my_atoi(arr));
5.  return 0;
6. }


atoi模拟实现:

int my_atoi(char* str)
{
  assert(str != NULL);
  int ret = 0;//最后的返回值的绝对值
  int sign = 1;//返回值的符号
//这个循环的目的是找到数字和确定数字的正负
  while (*str != '\0')
  {
    if (*str <='9' && *str >= '0')
    {
      str--;
      if (*str == '-')
      {
        sign = -1;
      }
      str++;
      break;
    }
    str++;
  }//这时,sign为符号,str指向第一个数字
//这个循环是把字符串的数字赋值给ret  
    while (*str != '\0')
  {
    if ('0'<*str && *str <= '9')
    {
      ret = ret * 10;
      ret = ret + (*str-48);//通过ascii表可知,减去48就是本身数值,否则1就是49
      str++;
    }
    else if (*str == '0')//防止前面有0使shi多*
    {
      str++;
    }
    else
    {
      break;
    }
  }
  return ret*sign;
}


相关文章
|
C语言
strlen函数【详解+模拟实现】
strlen函数【详解+模拟实现】
|
7月前
模拟实现atoi函数
模拟实现atoi函数
38 1
|
6月前
atoi函数(想要彻底了解atoi函数,那么看这一篇就足够了!)
atoi函数(想要彻底了解atoi函数,那么看这一篇就足够了!)
|
7月前
strcat与strncat函数使用与模拟实现
strcat与strncat函数使用与模拟实现
43 0
strstr函数的使用及模拟实现
1.strstr函数 2.strstr函数的使用 3.strstr函数的模拟实现
169 0
|
7月前
atoi()详解及其模拟实现
atoi()详解及其模拟实现
|
7月前
atoi函数的模拟实现
atoi函数的模拟实现
模拟实现库函数strlen
模拟实现库函数strlen
32 0
|
存储 Serverless
strlen函数解析与模拟实现
strlen函数解析与模拟实现
strlen函数解析与模拟实现
strlen函数的两种模拟方法以及使用
strlen函数的两种模拟方法以及使用