C ++:如何在不使用任何内置函数的情况下将字符串转换为整数

m0bi5

我试图将字符串转换为整数,然后再执行一些算术运算。

char string[10];

如果字符串只有一个单词,我可以这样做:

string[0]-'0'

如果字符串有多个字符,如何将其转换为整数。

N·利维

最好使用内置函数,但如果要手动执行此操作,则需要遍历字符串中实际上是数字的所有字符。由于这是以10为底的,因此每次循环时,您只需将累加器乘以10:

int strToInt (const char *str) {
    int accumulator = 0;
    int sign = 1;

    if (*str == '-') {
        str++;
        sign = -1;
    }

    while (*str >= '0' && *str <= '9') {
        accumulator *= 10;
        accumulator += *str - '0';
        str++;
    }

    return accumulator * sign;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不使用任何内置函数的情况下将整数转换为 c 字符串,反之亦然以及其他数据类型?

如何在不使用to_string或stoi的情况下将int转换为C ++ 11中的字符串?

如何在不使用内置 c# 方法的情况下反转字符串

如何在不使用幻数的情况下将“字符数”转换为int?(在C ++中)

在不使用C#中内置函数的情况下计算字符串长度

c# - 如何在不使用数组或拆分函数的情况下拆分字符串#

c# - 如何在不使用任何系统帮助函数的情况下将字节 [] 转换为 c# 中的 int?

C ++:在不使用向量的情况下将字符串数组传递给函数

如何在 C 中不使用括号的情况下修改字符串文字的内容?

如何在不使用临时字符串和C lib的情况下反转字符串?

在不使用任何预定义函数的情况下在C中进行字符串匹配?

如何在不使用库函数的情况下将字符串转换为数字

C:尝试在不使用任何字符串库功能的情况下从字符串中删除空格

如何在不使用“使用 System.Security.Cryptography”的情况下在字符串上实现 md5;或任何其他内置方法 - C#

如何在c中不使用任何递归函数的情况下遍历目录?

如何在不使用C#字符串数组的循环的情况下获取每个项目

如何在不使用C#将其写入字符串文字的情况下引用标识符?

在没有C ++的情况下将字符串转换为双精度

在不使用字符串库函数的情况下替换C中的子字符串

如何在不违反C ++核心准则的情况下将整数转换为void *?

在没有CGO的情况下将C字符串转换为Go字符串

不使用乘法C#将字符串转换为整数

如何在不使用C#中内置函数Rank的情况下获取数组的维数?

如何在不使用其他数组的情况下交换 C 中指针字符串数组中的两个字符串?

在没有(sprintf/printf 库)的情况下,在 C 中将整数转换为十六进制字符串

如何在不使用getline的情况下在C ++中读取带空格的字符串

C#:如何在不使用 switch 的情况下为字符串 var 赋值

如何在不使用doubleval函数的情况下将字符串转换为php中的double?

在不使用strlen的情况下查找字符串长度并在C中使用函数