如果我有这样的字符串
char foo[10] = "%r1%r2";
我想取出 1
和 2
并将它们转换为 int
。我该怎么做呢?
最佳答案
if (sscanf(foo, "%%r%d%%r%d", &i1, &i2) != 2)
...format error...
When you do the format for
sscanf()
I understand%d
is a decimal int but why do you have%%r
?
如果您要在源字符串中查找文字 %
,您可以使用 %%
在格式字符串(以及 printf( )
,您在格式字符串中使用 %%
以在输出中生成 %
); r
代表它自己。
还有其他方式可以指定转换,比如%*[^0-9]%d%*[^0-9]%d
;使用分配抑制(*
)和扫描集([^0-9]
,任何不是数字的东西)。此信息应该可以从 sscanf()
的手册页中获得。
关于c - 从 C 中的字符串中提取两个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13036321/