我的订单被定义为'A< a< B< b ...< Z< Z”。 我必须找到给定的字符串是否在范围内。 防爆。如果我的范围是AaA - BaB,AA或AaaB在范围内,而不是CbAA。
我正在寻找帮助我入手的任何指示,想法和建议。我将在C中实现它。
答案 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
。如果其中一个字符串用完字母,请将其视为较小。