劍指Offer——把字符串轉換成整數

題目描述

將一個字符串轉換成一個整數(實現Integer.valueOf(string)的功能,但是string不符合數字要求時返回0),要求不能使用字符串轉換整數的庫函數。 數值爲0或者字符串不是一個合法的數值則返回0。

輸入描述:

輸入一個字符串,包括數字字母符號,可以爲空

輸出描述:

如果是合法的數值表達則返回該數字,否則返回0

示例1

輸入

+2147483647
    1a33

輸出

2147483647
    0

題解

#include <iostream>

using namespace std;

int StrToInt(string str) {
    int len = str.length();
    int flag = 1;
    long long res = 0;
    if (!len)return 0;
    if (str[0] == '-')flag = -1;
    for (int i = (str[0] == '+' || str[0] == '-') ? 1 : 0; i < len; i++) {
        if (!(str[i] >= '0' && str[i] <= '9'))return 0;
        res = res * 10 + (str[i] - '0');
    }
    return res * flag;
}

int main() {
    ios::sync_with_stdio(false);
    string s;
    cin >> s;
    cout << StrToInt(s);
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章