2016-03-14 89 views
-5

嗯,我試着總結字符串,其中包含前數(只)。如何總結值的字符串

std::string a = "103"; 
std::string b = "13"; 

而且我希望它總結了這樣的結果將是116

我想知道substringcharAt,但我不知道,如果使用這兩種做法是一個很好的一個。

我希望這是很好的解釋。

+1

而你嘗試這樣做呢?如果是,請告訴我們代碼。 – CinCout

+0

@HappyCoder都能跟得上沒有即時通訊剛剛開始學習C++,如果這個決心的一個好只是告訴我,我做的這一個和自己,但我仍然不知道如何嘿,但不要張貼代碼:) – Bulit

+0

原諒我的錯誤應該有串不字符串我有一個壞習慣從java – Bulit

回答

4

String假設是std::string然後

std::stoi(a) + std::stoi(b)是單向的。

但請注意,ab必須包含可以轉換爲整數類型,每個參數+,總必須溢出int沿着唯一的字符序列。

如果不是這種情況,請考慮std::stol,'std :: stoll'或std::stod。請注意0​​適用於64位無符號整型。

+0

如果溢出int會怎麼樣?我需要斐波那契數列中的n = max 100000。所以我做了我自己的bigint。 – Bulit

+0

「std :: stoll」應該足夠了:「long long」必須至少爲64位。 – Bathsheba

+0

我必須事先了解一下,但thx提前尋求幫助 – Bulit

2

這可以通過使用std::istringstream來實現。

int iA, iB; 
std::istringstream(a) >> iA; 
std::istringstream(b) >> iB; 

int sum = iA + iB; 

如果您使用的是自定義類正如您在留言中提到您可以覆蓋operator>>,仍然使用上面的解決方案。

+0

好吧,這在某種程度上幫助我hehe thx – Bulit

+0

加一,這是一個很好的pre-C++ 11解決方案。 – Bathsheba