字符串的范围查询

时间:2013-01-11 18:50:32

标签: c data-structures

我的订单被定义为'A< a< B< b ...< Z< Z”。 我必须找到给定的字符串是否在范围内。 防爆。如果我的范围是AaA - BaB,AA或AaaB在范围内,而不是CbAA。

我正在寻找帮助我入手的任何指示,想法和建议。我将在C中实现它。

1 个答案:

答案 0 :(得分:2)

所以你需要实现的是一个单独的函数,它根据你的规则比较两个字符串。它是一种修改过的词典排序:

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)。那就是它。

关于函数的一些提示更小 - 比较字符串char by char,如果两个字符不同,则返回compare_letter。如果其中一个字符串用完字母,请将其视为较小。