使用 sscanf 检查空格长度

标签 c cstring scanf

如何使用 sscanf 验证此字符串“string int int”中的每个参数、string、int、int 之间是否只有一个空格?

最佳答案

使用%n

// "string int int"
char dest[100];
int d[2];
int n[4];
int result = sscanf(buf, "%99s%n %n%d%n %n%d", 
  dest, &n[0], &n[1], &d[0], &n[2], &n[3], &d[1]);
if ((result == 3) && (n[1] - n[0] == 1) && (n[3] - n[2] == 1)) {
  LifeIsGood();
}

关于使用 sscanf 检查空格长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20448114/

相关文章:

c - puts 和 gets 函数如何工作?

c - scanf ("%s", &str) 和 scanf ("%s\n", &str) 有什么区别?

c - 使用 C 中的索引访问枚举

c# - 单个 C++/CLI 方法可包装许多类型特定的 C 函数

c - 将 C 程序翻译成 IA32 程序集(非常快)

c++ - 获取 Cstrings 的控制台输入

c - Scanf 未知数量的字符串参数 C

c++ - 递归搜索 C++ 调用图以查找特定函数

c - 尝试更改 char* 指针位置时出现 "Error: expression must be a modifiable lvalue"

c++ - 重写 Java 的 String.toUpperCase() 返回空字符数组