c - 字符串的范围查询

标签 c data-structures

我的订单定义为“A < a < B < b ...< Z < z”。 我必须确定给定的字符串是否在范围内。 前任。如果我的范围是 AaA - BaB,则 AA 或 AaaB 在范围内,但不在 CbAA 范围内。

我正在寻找任何指示、想法、建议来帮助我开始。我将在 C 中实现它。

最佳答案

因此,您需要实现的只是一个根据您的规则比较两个字符串的函数。这是一种修改后的词汇排序:

int compare_letters(char x, char y) {
  char lx = tolower(x);
  char ly = tolower(y);
  if (lx != ly) {
    return lx < ly;
  } else {
    return x < y;
  }
}
int smaller(const char* a, const char* b) {
  .. use the above function ... 
}

现在使用上面的函数来检查给定的字符串 x 是否在 (a,b) 范围内,检查 smaller(a, x)smaller(x ,b)。就是这样。

有关较小函数的一些提示 - 逐个字符地比较字符串,如果两个字符不同,则返回它们的 compare_letter。如果其中一个字符串用完了字母,则将其视为较小的字符串。

关于c - 字符串的范围查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14284752/

相关文章:

C - AVL 树旋转实现上的空指针问题

c++ - 将套接字重新绑定(bind)到不同的接口(interface)

c - Protocol Buffer nanopb序列化字符串和解码错误utf-8字符

python - 求递归函数的时间和空间复杂度

c - 运行我的代码时,我遇到了 Address Sanitizer 错误

c - C 中使用指针的字符串连接

algorithm - 每次插入后,从最后 K 个元素中查找最小值,其中 K 在小于 O(n) 的时间内不固定

java - Rational 类中相互调用方法

data-structures - 纯函数式编程语言中的双向链表

c - 如何从 jpg 图像中获取 RGB888(24 位)和 RGB565(16 位)帧缓冲区转储?