我有以下情況下任何輸入字符串將轉換爲一個整數。C字符串轉換
Example:
result = get_integer_from_string("100");
result == 100; // true
如何,我可以寫不使用任何圖書館這樣的功能?我可以通過使用庫來完成它。
我有以下情況下任何輸入字符串將轉換爲一個整數。C字符串轉換
Example:
result = get_integer_from_string("100");
result == 100; // true
如何,我可以寫不使用任何圖書館這樣的功能?我可以通過使用庫來完成它。
按照下列步驟操作:
我不能告訴你代碼,它不會幫助你學習,嘗試自己實現代碼,這很容易!
+1,如果可以的話,我會加倍努力。 – Gorpik
循環遍歷字符串,從結尾到開頭。獲取每個數字,並將其轉換爲十進制值。將第一個(在後向循環中)乘以1
並存儲結果。將第二個乘以10
並添加到前一個的結果中。等等。
這是很容易出錯的條件,但如果字符串是有效的整數應該工作:
int str2int(const char* str) {
int result = 0;
char* p = str;
for (;;) {
char c = *p++;
if (c < '0' || c > '9')
break;
result *= 10;
result += c - '0';
}
return result;
}
它的行爲接近atoi()
- 在任何非數字停止處理,併爲空的輸入返回0。
你需要什麼是將字符串轉換爲沒有庫的整數?我是對的 – Scarface
只需使用圖書館。這就是它的目的。 –
我會遍歷字符串,將ascii字符轉換爲數字(使用ascii值'0'到'9'),然後將其添加到總數(乘以10,100等取決於位置)。 – nemasu