将字符串内容转换为整数

时间:2013-10-07 17:42:57

标签: c++ string

我正在尝试将字符串的各个内容转换为整数。我需要从字符串中取出每个字符并将其转换为整数以添加到另一个字符。这不是使用C ++ 11。有一个简单的方法吗?

3 个答案:

答案 0 :(得分:2)

如果字符是数字,则每个字符的数值为

 num_value(c) = c - '0'

这是唯一可能的,因为代表数字的字符在ASCII table.中是有序的。你所要做的就是遍历字符串。

答案 1 :(得分: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)

答案 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';  });