我在将字符变量转换为整数变量时遇到了问题。这是我的代码:
当我试图将变量row转换为变量number的整数值时,我得到的不是2而是50。目前的目标是将变量row转换为字符变量number的准确值,这种情况下是2。我有点困惑为什么变量row是50而不是2。有人能解释一下为什么它没有准确转换吗?
#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;
}
}
}
当我试图将变量row转换为变量number的整数值时,我得到的不是2而是50。目前的目标是将变量row转换为字符变量number的准确值,这种情况下是2。我有点困惑为什么变量row是50而不是2。有人能解释一下为什么它没有准确转换吗?
50
是字符'2'
的 ASCII 数字值。也许您在printf
中使用了错误的格式说明符。 - Weather Vanevalue = digit - '0'
是一种常见的习惯用法。这将从数字字符中减去ASCII值0(48),或者如果你有一个非ASCII系统,则减去相应的值。 - Lee Daniel Crocker