• 把字符串转换成整数(剑指offer)


    题目描述

    将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 
    输入描述:
    输入一个字符串,包括数字字母符号,可以为空


    输出描述:
    如果是合法的数值表达则返回该数字,否则返回0

    输入例子:
    +2147483647
        1a33

    输出例子:
    2147483647
        0
     1 class Solution {
     2 public:
     3     int StrToInt(string str) {
     4         int len = str.size();
     5         if (len == 0)
     6             return 0;
     7         for (int i = 1; i<len; ++i)
     8         {
     9             if (str[i] - '0' < 0|| str[i] - '0' > 9)
    10             {
    11                 return 0;
    12             }
    13         }
    14         vector<int> vet;
    15         
    16         if (str[0] == '-' || str[0] == '+' || (str[0] - '0' >= 0 && str[0] - '0' <= 9))
    17         {
    18             for (int i = 1; i<len; ++i)
    19             {
    20                 if (str[i] - '0' >= 0 && str[i] - '0' <= 9)
    21                 {
    22                     vet.push_back(str[i] - '0');
    23                 }
    24             }
    25         }
    26         else
    27         {
    28             return 0;
    29         }
    30         int sum = 0;
    31         if (str[0] == '-')
    32         {
    33             for (int i = 0; i<vet.size(); ++i)
    34             {
    35                 sum=sum * 10 + vet[i];
    36             }
    37             return -sum;
    38         }
    39         else
    40         {
    41             if (str[0] == '+')
    42             {
    43                 for (int i = 0; i<vet.size(); ++i)
    44                 {
    45                     sum = sum * 10 + vet[i];
    46                 }
    47                 return sum;
    48             }
    49             else
    50             {
    51                 sum = sum * 10 + (str[0] - '0');
    52                 for (int i = 0; i<vet.size(); ++i)
    53                 {
    54                     sum = sum * 10 + vet[i];
    55                 }
    56                 return sum;
    57             }
    58         }
    59     }
    60 };
  • 相关阅读:
    c语言中strncpy函数
    c语言中字符串的复制
    c语言 11-6
    c语言 11-5
    c语言 11-4
    c语言中求字符串的长度
    c语言 11-3
    c语言中字符串的复制
    NOIP2006 金明的预算方案
    背包模型
  • 原文地址:https://www.cnblogs.com/wujufengyun/p/7007254.html
Copyright © 2020-2023  润新知