如何在C ++中将char转换为int?

时间:2014-07-06 19:11:43

标签: c++ arrays char

我创建了一个char类型的数组。 在那个数组中,我接受整数。 像0,1或其他任何事情。 该问题要求存储在Array中的值的总和。但是因为我已经将数组声明为char类型,所以0将被接受为' 0'。那么,我应该如何转换' 0'到0。 此外,大于10(十)的字符是否也可以转换为整数?

输入是一串整数;像00012312。 除了这种通用字符数组方法之外,还有一种更好的输入这些数字的方法。 在此先感谢您的帮助。

2 个答案:

答案 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 );