所以我有一个这样的字符串:"MULTR12"
我想把'1'和'2'作为两个单独的整数.我该怎么做呢?以前,我简单地说:
char *string = "MULTR12";
val = string[5];
Run Code Online (Sandbox Code Playgroud)
但是我得到一个非常奇怪的val值而不是1,就像我想要的那样.有人可以帮忙吗?谢谢!
这是你如何转换char为int..
int x = string[5] - '0';
Run Code Online (Sandbox Code Playgroud)
这里有一些解释..每个字符在内存中表示为ASCII字符,A将是65和simliar.这也适用于数字,所以0在ASCII中48,1是49等等.
现在,当我们0从任何数字的ASCII表示中减去时.让我们说数字是5,这就是我们实际在做的事情..
int x = 53 - 48
Run Code Online (Sandbox Code Playgroud)
这给了我们5一个整数.换句话说,我们正在计算该数字的ASCII表示从ASCII表示的位移0.