劍指offer 把字串轉換成整數

2021-08-31 03:46:51 字數 912 閱讀 1970

題目描述:

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

輸入描述:

輸入乙個字串,包括數字字母符號,可以為空

輸出描述:

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

示例:

輸入:

+2147483647

1a33

輸出:2147483647

0

首先,寫**之前先考慮所有可能的測試用例的習慣,在這個題上,我分析有以下幾種輸入:

空指標,即傳入的指標 str==null;

指標為空,即傳入的字串為空字串,str="";

數字,123456

+、-,出現在第一位時代表數字的正負,後面出現視為非法輸入

字母等其他非法輸入

其次,需要考慮範圍的問題,正整數的最大值為0x7fffffff,最小的負數是0x80000000,分兩種情況判斷整數是否發生上溢位或者下溢位。

下面是實現**:

class solution 

//判斷第乙個字元的型別

if (str[i] == '+') //第一位為+

else if (str[i] == '-') //第一位為-

while(str[i] != '\0') //如果沒有到字串結尾

i++;

} else

}return num;

}};

劍指offer 把字串轉換成整數

字串轉成整數的核心 很簡單,但是需要考慮的各種情況很多。1 首位 的判斷。2 在 的溢位判斷。3 null 空字串的判斷。4 數字後面出現了很多非數字的情況。atoi函式是講前面的數字儲存下來,劍指offer 的 則是返回0。兩種情況都說的通,視情況而定吧。5 開頭出現了很多非數字,中間摻雜著數字的...

《劍指offer》 把字串轉換成整數

題目描述 將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。這種題目交代不清楚,也沒啥技巧含量和思考價值,既然出現了,就順帶著做一下吧。code t 把字串轉換成整數 題目描述 將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。date 2015.12.10 20 17 auth...

劍指offer 把字串轉換成整數

輸入描述 輸入乙個字串,包括數字字母符號,可以為空 輸出描述 如果是合法的數值表達則返回該數字,否則返回0 示例1 輸入 2147483647 1a33 輸出 2147483647 0class solution int g status valid int strtoint string str ...