c - 从 C 中的字符串中提取两个整数

标签 c string parsing

如果我有这样的字符串

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

我想取出 12 并将它们转换为 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/

相关文章:

java - 字符串到字符数组在 Visual Studio 和 Android Studio 中返回不同的结果

c# - Int32.Parse()如何准确解析String?

c - 如何使用 stdard.h 库解决与 C 中的变量参数相关的问题?

c - 如何在 C 中使用正则表达式查找文件中的一行?

ruby - 将整个文本文件作为单个字符串读取的合理方法是什么?

java - 如何在Java中使用从字符串获取的输入?

ios - 无法使用 Swift Decodable 解析 JSON

html - 如何从这种类型的 html 源中提取文本?

c - OpenMP:锁定对单个数组元素的访问?

c - 宏中的 GCC 变量类型