看Larbin写代码,总是能学到很多蛮有意思的东西。Larbin中区分大小写的比较是StartWith,不区分大小写的比较式StartWithIgnoCase。这里他用了一个统一的方法,将一个字符变为小写。由于A=65,a=97;所以 b[i] | 32 一定会是小写字母,不管 b[i]是大写的或者小写的。
源代码如下:
/* test if b starts with a ignoring case
*/
bool startWithIgnoreCase (char *amin, char *b) {
int i=0;
while (amin[i] != 0) {
if (amin[i] != (b[i]|32)) return false;
i++;
}
return true;
}