字符数组到单个整数

问题描述:

我需要一点关于将char转换为单个整数值的指导。我不应该使用任何转换它们的库函数。我理解我如何使用char - '0'= int将单个字符转换为数组中的int,我的问题是如果有一种方法可以将整数数组作为一个整数。我正在使用iostream,字符串和cctype。字符数组到单个整数

谢谢

+0

这可能会有所帮助:http://*.com/questions/23001591/treating-a-character-array-as-an-integer-learn-c-the-hard-way-extra-credit。 –

+0

你*知道简单的算术,以及十进制系统是如何工作的(10的倍数和所有这些)? –

+0

因此,你有{'1','6','2'}或像{1,6,2}这样的整数数组的字符数组? – aisa

看看这个代码:

#include <string.h> 
#include <iostream> 

int main(void) { 
    char str[20] = {'1', '2', '3', '4', '5', '6', '\0'}; // char string; 
    int i, len; 

    long long number = 0;         // number which stores the value 

    len = strlen(str);         // calculate the length of string 
    i = 0; 
    for(i=0; i<len; i++) { 
     number = 10*number + (str[i] - '0'); 
    } 

    std::cout << number << std::endl;      // number 
    return 0; 
} 

注:它可以处理所有的+香港专业教育学院值范围从0 到9,223,372,036,854,775,807。我们甚至可以将它扩展为-ive值,我们只需检查字符串的第一个字符是否为减号( - )

+0

如果您要提出有关最大值的声明,请改为使用“int64_t”或“uint64_t”。 –

+0

谢谢,这是有道理的,我试图找出一种方式来使用10以某种方式。我觉得自己是一个白痴,一开始就没有看到这个。 – Motorscooter

+0

是的,我正在运行一个if语句,它说如果第一个元素是负数,它会减去它添加的其他元素。 – Motorscooter