在C語言中,要實現不區分大小寫的字符串比較,可以使用標準庫函數strcasecmp()
(適用于Linux和macOS)或_stricmp()
(適用于Windows)
#include<stdio.h>
#include<string.h>
#include <ctype.h>
int strcasecmp(const char *s1, const char *s2) {
while (*s1 && *s2) {
if (tolower(*s1) != tolower(*s2)) {
return (tolower(*s1) - tolower(*s2));
}
s1++;
s2++;
}
return (tolower(*s1) - tolower(*s2));
}
int main() {
char str1[] = "Hello World";
char str2[] = "hello world";
int result = strcasecmp(str1, str2);
if (result == 0) {
printf("Strings are equal (ignoring case).\n");
} else {
printf("Strings are not equal.\n");
}
return 0;
}
這個示例中的strcasecmp()
函數將兩個字符串逐字符進行比較,同時使用tolower()
函數將每個字符轉換為小寫。如果在比較過程中發現任何不相等的字符,函數將返回一個非零值,表示字符串不相等。如果函數返回0,則表示字符串相等(忽略大小寫)。