zoukankan      html  css  js  c++  java
  • 源码实现 --> atoi函数实现

    atoi函数实现

      atoi()函数的功能是将一个字符串转换为一个整型数值。

    例如“12345”,转换之后的数值为12345,“-0123”转换之后为-123。

    #include <stdio.h>
    int my_atoi(const char *str) { int total = 0; //保存转换后的数值 int isNegative = 0; //记录字符串中是否有负号 int length = 0; //记录字符串的长度 const char *p = str; char temp = '0'; if(NULL == p) //判断指针的合法性 { printf("error"); return -1; } while(*p++!='') //计算字符串的长度 { length++; } p = str; //重新指向字符串的首地址 if(*p == '-') //判断是否有负号 { isNegative = 1; } for(int i = 0;i < length;i++) { temp = *p++; if(temp > '9'||temp < '0') //滤除非数字字符 { continue; } if(total != 0||temp != '0') //滤除字符串开始的0字符 { temp -= '0'; total = total*10 + temp; } } if(isNegative) //如果字符串中有负号,将数值取反 return (0 - total); else return total; //返回转换后的数值 } int main(int argv,char *argc[]) { printf("%d ",my_atoi("-0123")); return 0; }

    执行结果:-123

  • 相关阅读:
    [FJOI2007]轮状病毒
    [SHOI2013]发微博
    ATCODER ABC 099
    [HEOI2015]兔子与樱花
    [TJOI2017]可乐
    [TJOI2015]线性代数
    [Ceoi2008]order
    [CTSC2008]祭祀river
    [POI2009]Lyz
    数列分块(数据结构)学习笔记
  • 原文地址:https://www.cnblogs.com/jeakeven/p/5332860.html
Copyright © 2011-2022 走看看