題目本身不難,但需要考慮的非法輸入比較多,所以還是值得學習一下,用來應付各種比較「嚴格的」面試。
int strtoint(const char* str);
考慮因素:
1. str指標是否為空,str是否為空串
2. 正負號輸入
3. 整數溢位
(若還有其他考慮,還請賜教。)
bool g_invalid_input_49 = false;
int q49_strtoint(const
char* str)
bool is_positive = true;
const
char *p = str;
if ('+' == *p) else
if ('-' == *p)
return q49_strtoint_core(p, is_positive);
}int q49_strtoint_core(const
char* p, bool is_positive)
++p;
} else
}if (!is_positive)
return ret;
}
如果簡單些轉換可能大家都會,但真正能這樣寫出來,說實在的,確實不容易。準確的說,現在的我,面試的時候肯定做不到。只有多積累了。 《劍指offer》 49 把字串轉化成整數
題目 把字串轉換為整數,也就是實現atoi 類似還有itoa 將整數數轉化為字串,相反的過程。此題雖然簡單,但是就像高考一樣,簡單的題不一定能做對,能做對的不一定能得分。好吧,下面來看看一看應該注意的地方。易錯點 1 判斷字串是否為null的情況 這是對字串處理最基本得需要注意的地方 2 如何區分字...
劍指offer面試題 49 把字串轉化為整型
題目 將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0 輸入描述 輸入乙個字串,包括數字字母符號,可以為空。輸出描述 如果是合法的數值表達則返回該數字,否則返回0。示例1 分析 我們知道大多數情況下越簡單的問題可能越容易出錯,這個題目很多人,包括...
劍指offer 將字串轉化為整數
題目描述 將乙個字串轉換成乙個整數 實現integer.valueof string 的功能,但是string不符合數字要求時返回0 要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0。輸入描述 輸入乙個字串,包括數字字母符號,可以為空 解題思路 先將字串轉化為陣列,要將字...