How to get integer value from character?

How to convert a character to an integer value? For example, I tried to read "A" as 1, "B" as 2, and so on. I tried to compare a character with each letter in the alphabet and return the corresponding value.

int intvalue(char letter)
{
if(letter == "A")
    return 1;
else if(letter == "B")
    return 2;
else if(letter == "C")
    return 3;
else if(letter == "D")
    return 4;
else if(letter == "E")
    return 5;
else if(letter == "F")
    return 6;
else if(letter == "G")
    return 7;
else if(letter == "H")
    return 8;
else if(letter == "I")
    return 9;
else if(letter == "J")
    return 10;
else if(letter == "K")
    return 11;
else if(letter == "L")
    return 12;
else if(letter == "M")
    return 13;
else if(letter == "N")
    return 14;
else if(letter == "O")
    return 15;
else if(letter == "P")
    return 16;
else if(letter == "Q")
    return 17;
else if(letter == "R")
    return 18;
else if(letter == "S")
    return 19;
else if(letter == "T")
    return 20;
else if(letter == "U")
    return 21;
else if(letter == "V")
    return 22;
else if(letter == "W")
    return 23;
else if(letter == "X")
    return 24;
else if(letter == "Y")
    return 25;
else if(letter == "Z")
    return 26;

}

I got an error: ISO C ++ prohibits comparison between pointer and integer. Does anyone know how to fix this? Or even better, differently? I feel that my above function is very rude.

+3
source share
6 answers

You need to use character literals, not string literals, like

if (letter == 'A')
              ^ note the single quotes

, , ASCII, :

int charIndex = (letter - 'A') + 1;

ASCII , . .

+9

++ a char - . , : char . A = 1, , :

int intValue(char value)
{
    return (value - 'A') + 1;
}

, , C/++ - char* (, , char[], ). : char char*.

+4

:

return letter - 'A' + 1;

( , letter )

, char - , : 'A'. : "ABC".

( ascii) .

+1

ASCII . ASCII 'A' ASCII 0, 1 1:

return letter - 'A' + 1;

'@' ( "A" ), , , , . , "A" 'A'; ( ), -

+1

:

int Value_From_Char(char c)
{
  static const char valid_letters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  const std::string letter_str(valid_letters);

  // Search the letters for the given char.
  std::string::size_type  position = 0;
  position = letter_str.find(c);
  int result = 0;
  if (position == std::string::npos)
  {
    result = -1;
  }
  else
  {
    result = (int) position;
  }
  return result;
}

UTF. .

+1

char int:

#include <iostream>

int main()
{
    char c;
    std::cout << "Enter a character: ";
    std::cin >> c; // for more than one chars you may need to use getline() or ignore()

    std::cout << "ASCII value of: " << c << ", is: " << int(c) <<".\n";
}

Input:

p

:

ASCII value of: p, is: 112.

0

Source: https://habr.com/ru/post/1751132/


All Articles