Письма к числам с C ++ символами

0

Скажем, у меня есть char, извлеченный из строки (str.at(i)), как бы преобразовать этот символ в число, такое, что A = 0, B = 1, C = 2... Z = 25? Заранее спасибо

Теги:
char

2 ответа

2
Лучший ответ

Предполагая, что строка уже находится в диапазоне AZ, вы можете сделать char_value - 'A'.

Это предполагает, что буквы все подряд. Итак, 'B' == 'A' + 1, 'C' == 'A' + 2 и т.д. В ASCII это предположение верно.

  • 0
    Да, это сработало! благодарю вас! Если бы вы могли, вы можете объяснить, почему это работает?
  • 1
    @BlakeDoeren Знаете ли вы о кодах ASCII?
Показать ещё 3 комментария
0

Каждый символ имеет определенный код ASCII! Как A = 65, b = 66.. и т.д. !! Если вы просто вычитаете 65 или "A" из каждого символа, вы получите желаемый int

например:

int a = charArray[i] - 65; 

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

& скоро!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню