-6

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

我正在寻找任何可以帮助我开始的指针、想法和建议。我将在 C 中实现它。

4

1 回答 1

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). 而已。

关于更小函数的一些技巧 - 逐个字符比较字符串,如果两个字符不同,则返回它们的compare_letter. 如果其中一个字符串用完了字母,请考虑将其变小。

于 2013-01-11T18:57:38.873 回答