2017-04-26 44 views
2

我有一個時間戳記像存儲在string 10:22:23。現在我想要兩個單獨的變量的小時和分鐘,所以我可以與他們計算。解析時間戳char到int來計算

我的方法是,我將char中的前兩位數字(小時)以及char中的4位和5位數字(分鐘)存儲起來。類似於

String timestamp = "10:22:23"; 
const char *timestamp_char = timestamp.c_str(); 

現在我可以撥打每個數字timestamp_char[]。我想要一個整數timestamp_char[0]timestamp_char[1],在這種情況下是「10」。另外,當時間是09:22:23時,我的整數應該看起來像這個「9」。與timestamp_char[4]timestamp_char[5]相同。

+1

你想C或C++的解決方案?挑一個或另一個。 – InternetAussie

+0

對不起。 C++ – ipo

+2

查看strptime的文檔。如果你在POSIX(ish)平臺上,這應該做你想做的。 –

回答

2

一個簡單的方法來做到這一點可能是這樣的:

std::string time = "10:22:33"; 
int hrs = std::stoi(time.substr(0, 2)); 
int mins = std::stoi(time.substr(3, 2)); 
int secs = std::stoi(time.substr(6, 2)); 
1
int h, m; 
const char *timestamp_char = timestamp.c_str(); 
sscanf(timestamp_char, "%d:%d", &hr, &m); 
+0

什麼是'str'?你應該解析'timestamp_char'嗎?如果你提供了一些實際的解釋,那可能更明顯! –