【发布时间】:2018-01-25 23:21:53
【问题描述】:
我在将字符变量转换为整数变量时遇到问题。这是我的代码:
#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;
}
}
}
当我尝试将变量行转换为变量编号的整数值时,我得到的不是 2,而是 50。到目前为止的目标是将变量行转换为字符变量编号的准确值,在此case 是 2。我对为什么变量 row 是 50 而不是 2 有点困惑。谁能向我解释为什么它不能准确转换?
【问题讨论】:
-
50是字符'2'的数字 ASCII 值。也许您在printf中使用了错误的格式说明符。 -
谷歌'ascii 表'
-
当您希望文本数字的值执行类似
value = digit -'0'的操作时,这是一个常见的习惯用法。这将从数字字符中减去 ASCII 值 0 (48)(或者如果您有非 ASCII 系统,则该值是什么)。
标签: c type-conversion integer character