我到處找,找不到回答這個具體問題:(將字符串轉換爲int(C++)
我有一個字符串日期,其中包含與剝奪所有的特殊字符的日期。(即:yyyymmddhhmm或201212031204)
我試圖將這個字符串轉換爲一個int以便能夠稍後對它們進行排序我嘗試過atoi,沒有工作,因爲函數的值太高我嘗試了流,但它總是返回-858993460,我懷疑這是因爲這個字符串太大了。我嘗試過atol和atoll,但他們仍然沒有給出正確答案。
我寧願不使用助推,因爲這是作業,我不認爲我會被允許。
我沒有選項將大字符串轉換爲int嗎? 謝謝!
我想怎麼能夠做到:
int dateToInt(string date)
{
date = date.substr(6,4) + date.substr(3,2) + date.substr(0,2) + date.substr(11,2) + date.substr(14,2);
int d;
d = atoi(date.c_str());
return d;
}
如果您只需要對它們進行排序,請將它們排序爲字符串。 – mah
爲什麼不在日期/時間結構中返回它?沒有辦法在int中存儲那麼多數字,所以需要一些更大的數據類型;使用與系統時間函數相同的格式似乎是合適的('date_t' iirc) – ssube
您是否有任何可用的64位可變數據類型?您的結果數量超過了20億,這對於32位整數來說太大了。無符號32位整數的最大值是4,294,967,295。 –