我在将字符变量转换为整数变量时遇到问题。这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char string[] = "A2";
char letter = string[0];
char number = string[1];
char numbers[] = "12345678";
char letters[] = "ABCDEFGH";
int row;
int column;
for(int i = 0; i < 8; i++){
if(number == numbers[i]){
row = number;
}
}
}
当我试图将变量行转换成变量号的整数值时,我得到50,而不是2。目前的目标是将变量行转换为字符变量号的精确值,在本例中为2。我有点搞不懂为什么变量行是50而不是2。有谁能向我解释为什么它不能准确地转换?
最佳答案
'2' != 2
ascii中的'2'字符是十进制的50(十六进制的0x32)。参见http://www.asciitable.com/
如果你确定它们是真正的数字,你可以使用(numbers[i] - '0')
来获得你想要的值。
关于c - 在C中将字符转换为整数的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48453503/