1、題目描述
將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是乙個合法的數值則返回0。
2、**
2.1 原理:
這個題目從題目本身上來說是不難的,但是主要是需要注意一些特殊的情況需要加以判斷,以下是乙個需要考慮的特殊情況:
(1)如果輸入的字串是空的字元
(2)如果輸入是帶正負號的字串
(3)在(2)的基礎上,如果只有乙個字元,且這個字元就是+-號
(4)如果字串的數值超過了整數的最大範圍,如何處理,這裡最好一開始就用long long int的數值型別。
一般是刷題的時候,網上提交的時候,如果函式的形式實現設定好了,就只需要考慮前面三點了,但是如果是自己寫**,就需要注意後面的幾點了。
2.2 **:
//將字串轉化成整數
class
solution1
//只輸入乙個正號或者是負號
if(str.size()==1 && (str[0]=='+' || str[0]=='-'))
auto size = str.size();
auto c = str[0];
int num=0;
bool temp=false; //判斷是否為負數
for(auto i=0;iif(i==0)
else
}else}}
if(temp)
num*=-1;
return num;
}};
3 擴充套件:將字串轉化成小數
轉化成小數,需要考慮到小數點,以及小數點後的資料的位數。
//將字串轉化成小數
class
solution
else
return
0; }
else
}else
if(str[i]=='.')
else
return
0; }
}if(temp)
num*=-1;
return num;
}};
寫在最後:
做這一類的題目,最需要注意的點:首先考慮特殊情況,將所有的特殊情況盡量考慮的清楚點,思路一定要清晰了再開始寫**。
把字串轉換成整數
題目 輸入乙個表示整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數345 分析 這道題儘管不是很難,學過c c 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司用作...
把字串轉換成整數
題目 輸入乙個表示整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數 345。分析 這道題儘管不是很難,學過c c 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司用...
把字串轉換成整數
題目 輸入乙個表示整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數 345。分析 這道題儘管不是很難,學過 c c 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司...