我在将字符变量转换为整数变量时遇到问题。这是我的代码:

#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' != 2ascii中的'2'字符是十进制的50(十六进制的0x32)。参见http://www.asciitable.com/
如果你确定它们是真正的数字,你可以使用(numbers[i] - '0')来获得你想要的值。

关于c - 在C中将字符转换为整数的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48453503/

10-09 06:43
查看更多