如果我有这样的绳子

char foo[10] = "%r1%r2";

我想取出12并将它们转换为ints。我如何才能继续这样做?

最佳答案

if (sscanf(foo, "%%r%d%%r%d", &i1, &i2) != 2)
    ...format error...

当你做sscanf()的格式时,我知道%d是十进制整数,但是为什么你有%%r
如果要在源字符串中查找文本,可以使用%在格式字符串中指定(在%%中,可以在格式字符串中使用printf()在输出中生成%%);%表示自身。
还有其他方法可以指定转换,例如使用赋值抑制(assignment suppression,即r)和扫描集(%*[^0-9]%d%*[^0-9]%d,任何非数字的内容)。此信息应可从*的手册页获取。

关于c - 从C中的字符串中提取两个整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13036321/

10-13 04:28