私の注文は「A < a < B < b ...< Z < z」と定義されています。特定の文字列が範囲内にあるかどうかを確認する必要があります。元。私の範囲が AaA - BaB の場合、AA または AaaB は範囲内ですが、CbAA ではありません。
始めるのに役立つ指針、アイデア、提案を探しています。これをCで実装します。
私の注文は「A < a < B < b ...< Z < z」と定義されています。特定の文字列が範囲内にあるかどうかを確認する必要があります。元。私の範囲が AaA - BaB の場合、AA または AaaB は範囲内ですが、CbAA ではありません。
始めるのに役立つ指針、アイデア、提案を探しています。これをCで実装します。
したがって、実装する必要があるのは、ルールに従って 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)
ます。それでおしまい。
関数 small に関するヒント - 文字列 char を char ごとに比較し、2 つの文字が異なる場合は、それらのcompare_letter
. 文字列の 1 つが文字を使い果たした場合は、それを小さくすることを検討してください。