如何从C中的字符串中获取一个没有空格的int?

use*_*332 0 c string int

所以我有一个这样的字符串:"MULTR12"

我想把'1'和'2'作为两个单独的整数.我该怎么做呢?以前,我简单地说:

char *string = "MULTR12";
val = string[5];
Run Code Online (Sandbox Code Playgroud)

但是我得到一个非常奇怪的val值而不是1,就像我想要的那样.有人可以帮忙吗?谢谢!

vid*_*dit 5

这是你如何转换charint..

int x = string[5] - '0';
Run Code Online (Sandbox Code Playgroud)

这里有一些解释..每个字符在内存中表示为ASCII字符,A将是65和simliar.这也适用于数字,所以0在ASCII中48,149等等.

现在,当我们0从任何数字的ASCII表示中减去时.让我们说数字是5,这就是我们实际在做的事情..

int x = 53 - 48
Run Code Online (Sandbox Code Playgroud)

这给了我们5一个整数.换句话说,我们正在计算该数字的ASCII表示从ASCII表示的位移0.

  • 你错过了"0"的引用了吗? (2认同)