如何进行不区分大小写的字符串比较?

How to do a case-insensitive string comparison?

我想进行不区分大小写的字符串比较。实现该目标的最简单方法是什么?我有以下代码执行区分大小写的操作。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
    char *str1 = "String";
    char *str2 = "STRING";

    if (strncmp(str1, str2, 100) != 0)
    {
        printf("=(");
        exit(EXIT_FAILURE);
    }

    return 0;
}

如果您能承受稍微偏离严格的 C 标准,您可以使用 strcasecmp()。 这是一个 POSIX API.

否则,您始终可以选择将字符串转换为特定大小写(大写或小写),然后使用 strcmp().

执行正常比较

您可以使用 strcmpi() 函数。

if(strcmpi(str1,str2)!=0)

仅适用于 Windows 系统。