我创建了一个char类型的数组。 在那个数组中,我接受整数。 像0,1或其他任何事情。 该问题要求存储在Array中的值的总和。但是因为我已经将数组声明为char类型,所以0将被接受为' 0'。那么,我应该如何转换' 0'到0。 此外,大于10(十)的字符是否也可以转换为整数?
输入是一串整数;像00012312。 除了这种通用字符数组方法之外,还有一种更好的输入这些数字的方法。 在此先感谢您的帮助。
答案 0 :(得分:1)
包含0 ... 9的char可以通过减去' 0来转换为int。研究ASCII图表以了解原因。
char c = '7';
int n = c - '0';
答案 1 :(得分:1)
如果您有像这样的字符数组
char a[] = "00012312";
然后你可以通过以下方式找到总和
int sum = 0;
for ( char *p = a; *p; ++p ) sum += *p - '0';
如果需要将数组的内容转换为整数,则可以编写
int x = ( int )std::strtol( a );
与
相同int x = std::atoi( a );