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

时间:2015-06-08 05:50:53

标签: c string string-comparison case-insensitive strcmp

我想做一个不区分大小写的字符串比较。最简单的方法是什么?我有以下代码执行区分大小写的操作。

#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;
}

2 个答案:

答案 0 :(得分:4)

如果您能够承担偏离严格C标准的偏差,则可以使用strcasecmp()。  它是一个POSIX API。

否则,您始终可以选择将字符串转换为特定大小写(UPPER或更低),然后使用strcmp()执行常规比较。

答案 1 :(得分:2)

您可以使用strcmpi()函数。

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

仅适用于Windows系统。