c++ - 我的 sumaASCII 函数中的偏移量是多少?

标签 c++ ascii

我正在尝试编写一个函数来对字符串输入中每个字符的 ASCII 数字求和。但是,如果我没有在我的代码中提供 +48 偏移量,该函数将返回一个 -48 off 的值。这个偏移量是多少?

int sumASCII (string input) {
    int index = 0;
    int sum = 0;
    int strLen = (int)input.length();

    while (index < strLen) {
        sum = (input[index] - '0') + sum + 48;
        index++;
    }

    return sum;
}

最佳答案

“0”的 ascii 值为 48。因此,如果我们查看您的代码,并将“0”替换为 48,您可能会注意到问题....

sum = input[index] - 48 + sum + 48;

所以你不妨将其替换为:

sum += input[index];

关于c++ - 我的 sumaASCII 函数中的偏移量是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59279239/

相关文章:

c++ - C++ 中的动态结构

c++ - 为什么要调用复制构造函数?

swift - 如何将 UInt8 转换为字节 Swift 4

C、获取unsigned char以使用ascii 2表

java - 角色出现

c++ - 库不是只有标题的原因是什么?

c++ - c++中存储的非标准函数的声明在哪里?

c++ - std::stringstream 与 std::string 用于连接多个字符串

algorithm - 用 Java 输出类似英国国旗的 ASCII 艺术

unicode - ASCII 和扩展 ASCII 中固有的困难,以及 Unicode 兼容性?