如何将字符转换为整数值?例如,我一直试图将“A”读作 1,将“B”读作 2,等等。我尝试将字符与字母表中的每个字母进行比较并返回适当的值。
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;
我收到“错误:ISO C++ 禁止比较指针和整数”。有谁知道如何解决这一问题?或者更好的是,用不同的方法来解决这个问题?我觉得我的上述功能非常暴力。
最佳答案
您需要使用字 rune 字,而不是字符串文字,例如,
if (letter == 'A')
^ note the single quotes
也就是说,如果您愿意假设您正在使用 ASCII 字符集的系统上运行,则可以简单地使用算术:
int charIndex = (letter - 'A') + 1;
在 ASCII 字符集中,字母位于连续的索引处,因此可以正常工作。这可能不适用于其他字符集。
关于c++ - 如何从字符中检索整数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3089927/