c++ - 当我不使用标准字符串时,如何在 C++ 中将字符串转换为 int?

标签 c++ string int

我正在构建自己的字符串类,并尝试使用此函数将数字字符串转换为整数:

int String::convertToInt() const {  
    int exp = length() - 1;
    int result = 0;

    for(int i = 0; i < length(); ++i) {
        result += (charAt(i) - '0') * (10 ^ exp);
        --exp;
    }   
    return result;
}

有些地方不对劲,但我无法确定是什么原因。当我尝试将“49”转换为 int 时,它会将其转换为 134。

最佳答案

^ 是异或。我相信您正在寻找 std::pow(10, exp)

甚至这样:

int String::convertToInt() const {  
    int order = std::pow(10, length() - 1);
    int result = 0;

    for(int i = 0; i < length(); ++i) {
        result += (charAt(i) - '0') * order;
        order /= 10;
    }   
    return result;
}

关于c++ - 当我不使用标准字符串时,如何在 C++ 中将字符串转换为 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19727649/

相关文章:

c++ - 实时和用户时间之间的巨大差异

c++ - std::optional<>::emplace() 是否会使对内部值的引用无效?

java - 有没有办法在java 8中分割字符串并操作它?

c - 将int写入c中的文件: getting weird character "\00"

c++ - 将int转换为int值的char

c++ - 调用使用字符数组的类函数 (C++)

c++ - 如何使用纹理和 MeshConvert.exe 构建 SdkMesh?

c - 简单计算 C 文件中有多少个整数

php - 如何从两个标签中删除多个子字符串

c - 将 fgets() 与 char* 类型一起使用