-2

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

4

3 回答 3

2

如果字符是数字,那么每个的数值是

 num_value(c) = c - '0'

这仅是可能的,因为表示数字的字符在ASCII 表中是按顺序排列的。. 您所要做的就是遍历字符串。

于 2013-10-07T17:50:58.000 回答
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)

于 2013-10-07T17:49:17.587 回答
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';  });
于 2013-10-07T18:02:09.343 回答