2013-10-06 61 views
0

说我有一个字符串(str.at(i))提取字符,我将如何将该字符转换为一个数字,使A = 0,B = 1,C = 2。 .. Z = 25?提前Thanx字母数字与C + +字符

+3

'int number = myChar - 'A';' –

回答

2

假设字符串已经在A-Z范围内,您可以做char_value - 'A'

这里假定这些字母都是连续的。所以'B' == 'A' + 1,'C' == 'A' + 2等 在ASCII中,这个假设是正确的。

+0

是的,这工作!谢谢!如果可以的话,你能解释为什么这可行吗? –

+1

@BlakeDoeren你知道ASCII码吗? – kotlomoy

+1

@BlakeDoeren添加了一些细节。希望这可以澄清事情。 – luiscubal

0

每个字符都有一个特定的ASCII码! 像A = 65,b = 66 ..等! 如果你简单地减去65或从每个字符 'A',你会得到期望的INT

如:

int a = charArray[i] - 65; 

if: charArray[i] = A 
then: a = 0 

&等等!