Leetcode(8):String to Integer (atoi)

来源:互联网 发布:苹果软件中文字体 编辑:程序博客网 时间:2024/05/22 17:18

 字符串转换成整数(atoi)的几条准则:

  1. 会忽略开头的一个或多个空白字符,包括' ', '\t', '\r'等等字符。
  2. 如果输入的是空串,返回0值。
  3. 正负号的情况。
  4. 计算的值出现越界时,如果大于INT_MAX那么就返回INT_MAX,如果小于INT_MIN,返回INT_MIN。
int myAtoi(char* str){    int i = 0, result = 0, flag = 1;        if (str == NULL || strlen(str) == 0)        return 0;        while (isspace(str[i]))        i++;        if (str[i] == '+')        i++;    if (str[i] == '-') {        flag = -1;        i++;    }        while (isdigit(str[i]) && i < strlen(str)) {        if (flag == 1 && result > (INT_MAX-(str[i]-'0') )/10 )            return INT_MAX;        else if (flag == -1 && result > -((INT_MIN+(str[i]-'0'))/10) )            return INT_MIN;        result = result * 10 + str[i] - '0';        i++;    }    result *= flag;    return  result;}


0 0
原创粉丝点击