How can I sum all digits in a string num
into an integer sum
using a lambda?
std::string num = "1234567891011";
int sum = accumulate(num.begin(), num.end(), 0, [](auto & a, auto & b)
{
// ???
// return int(a - '0') + int(b - '0') causes an error
});
With this num
, sum
must be equal 48
.
Assuming that the num
will always have chars between 0
and 9
, you can accumulate as follows:
int sum = std::accumulate(num.begin(), num.end(), 0, [](int a, char b) {
return a + (b - '0');
});