【问题标题】:How to do a case-insensitive string comparison? [duplicate]如何进行不区分大小写的字符串比较? [复制]
【发布时间】:2015-08-22 12:00:07
【问题描述】:

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

#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 string string-comparison case-insensitive strcmp


【解决方案1】:

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

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

【讨论】:

  • 你的意思是strncasecmp?
  • @AkiSuihkonen 由你决定,你(几乎)总是有长度分隔的版本。无论如何,我喜欢的手册页包含我猜的两个版本。 :-)
  • 你的意思是链接..
  • @WedaPashi 哈哈,我的错。是的,你是。 (抱歉,编辑期结束):-)
【解决方案2】:

你可以使用 strcmpi() 函数。

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

仅适用于 Windows 系统。

【讨论】:

  • 对不起,这不是特定于 Windows 的吗?
  • man strcmpi --> strcmpi 没有手动输入
  • @AkiSuihkonen 需要查看here。
  • 另外,你可以提一下包括Shlwapi.h
猜你喜欢
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
相关资源
最近更新 更多