如何使用 lambda 将字符串中的字符累加为数字?

问题描述 投票:0回答:1

如何使用 lambda 将字符串

num
中的所有数字求和为整数
sum

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
});

有了这个

num
sum
必须等于
48

c++ algorithm c++11 lambda accumulate
1个回答
2
投票

假设

num
始终在
0
9
之间有字符,则可以按如下方式累积:

int sum = std::accumulate(num.begin(), num.end(), 0, [](int a, char b) {
        return a + (b - '0');
});
© www.soinside.com 2019 - 2024. All rights reserved.