字符数组到单个整数
我需要一点关于将char转换为单个整数值的指导。我不应该使用任何转换它们的库函数。我理解我如何使用char - '0'= int将单个字符转换为数组中的int,我的问题是如果有一种方法可以将整数数组作为一个整数。我正在使用iostream,字符串和cctype。字符数组到单个整数
谢谢
看看这个代码:
#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值,我们只需检查字符串的第一个字符是否为减号( - )。
如果您要提出有关最大值的声明,请改为使用“int64_t”或“uint64_t”。 –
谢谢,这是有道理的,我试图找出一种方式来使用10以某种方式。我觉得自己是一个白痴,一开始就没有看到这个。 – Motorscooter
是的,我正在运行一个if语句,它说如果第一个元素是负数,它会减去它添加的其他元素。 – Motorscooter
这可能会有所帮助:http://stackoverflow.com/questions/23001591/treating-a-character-array-as-an-integer-learn-c-the-hard-way-extra-credit。 –
你*知道简单的算术,以及十进制系统是如何工作的(10的倍数和所有这些)? –
因此,你有{'1','6','2'}或像{1,6,2}这样的整数数组的字符数组? – aisa