2013-10-07 13 views
-2

我試圖將字符串的單個內容轉換爲整數。我需要從字符串中獲取每個字符並將其轉換爲一個整數以添加到另一個字符中。這不是使用C++ 11。有沒有簡單的方法來做到這一點?將字符串內容轉換爲整數

+1

耶。使用迭代器瀏覽字符串,計算'* it - '0'',獲利。 – 2013-10-07 17:49:47

回答

2

如果字符是數字,然後每個標號值是

num_value(c) = c - '0' 

這是唯一可能的,因爲表示數字的字符在ASCII table.中是按順序排列的。你所要做的就是循環字符串。

1

「我需要從字符串中取每一個字符,並將其轉換爲整數添加到另一個」

如果要計算存儲在std::string對象數字的總和,你可以這樣做:

std::string myNum("567632"); 
int sum = 0; 
for (size_t i = 0; i < myNum.size(); ++i) 
    sum += (myNum[i] - '0'); 
std::cout << sum; 

其輸出29(即5 + 6 + 7 + 6 + 3 + 2)

0

std::accumulate怎麼樣?

#include<string> 
#include<algorithm> 
//... 

std::string myNum("123456789"); 

std::cout<<accumulate(myNum.begin(), myNum.end(), 0, 
       [](int sum,const char& x){return sum+=x-'0'; });