C++ 将数字字符转换为c+中的整数(与字符相同)+;

C++ 将数字字符转换为c+中的整数(与字符相同)+;,c++,C++,我有一个数组是char,它们都是数字,但在char类型中表示: myArray = ['5','6','8','9','10',....] 例如,我需要添加其中两个。我必须将它们转换为整数,然后将它们添加到一起,但使用: (int)myArray[1]+(int)myArray[2] 给一个错误的答案。 执行此操作的函数或正确方法是什么?对于'0'-'9'中的数字字符,可以减去'0'的值,因为它们的值是连续的: char digit = '7' ; //any char, from '0'

我有一个数组是char,它们都是数字,但在char类型中表示:

myArray = ['5','6','8','9','10',....]
例如,我需要添加其中两个。我必须将它们转换为整数,然后将它们添加到一起,但使用:

(int)myArray[1]+(int)myArray[2]
给一个错误的答案。 执行此操作的函数或正确方法是什么?

对于
'0'
-
'9'
中的数字字符,可以减去
'0'
的值,因为它们的值是连续的:

char digit = '7' ; //any char, from '0' ... '9'
int value = digit - '0';
进一步信息:

对于
'0'
-
'9'
中的数字字符,可以减去
'0'
的值,因为它们的值是连续的:

char digit = '7' ; //any char, from '0' ... '9'
int value = digit - '0';

更多信息:

您可以使用函数atoi,例如:

char str[] = "122";
int i = atoi(str);
请注意,字符串必须使用双引号(“),单引号(')仅适用于字符

此外,您还必须添加以下内容:

#include <cstdlib>
#包括

您可以使用函数atoi,例如:

char str[] = "122";
int i = atoi(str);
请注意,字符串必须使用双引号(“)。单引号(')仅适用于字符

此外,您还必须添加以下内容:

#include <cstdlib>
#包括

'10'不是字符…请发布实际的相关代码exci=使用我你是对的,这是我的错误。对不起me@Jekyll:允许使用多字节文字。@ThomasMatthews是的,我见过(尝试过)。这是我以前从未尝试过的,我很惊讶:)。但我会做得更好删除注释:D'10'不是字符…请发布实际的相关代码exci=使用我你是对的,这是我的错误。对不起me@Jekyll:允许使用多字节文字。@ThomasMatthews是的,我见过(尝试过)。这是我以前从未尝试过的,我很惊讶:)。但我最好删除注释:df,因为这是所有必需的编码。这几乎是唯一可以跨编码移植的东西。@Pete Becker:谢谢你指出这一点。我读了一些,从我添加的链接开始。到目前为止,我从未质疑过我的代码在字母数字范围方面的可移植性。我通常会抨击人们做出以ASCII为中心的假设,因此我感谢您的谨慎。对于所有编码,这都是必需的。这几乎是唯一可以跨编码移植的东西。@Pete Becker:谢谢你指出这一点。我读了一些,从我添加的链接开始。直到现在,我从来没有质疑过我的代码在字母数字范围上的可移植性。我通常会因为人们做出以ASCII为中心的假设而痛击他们,所以我感谢你的谨慎。