如何进行不区分大小写的字符串比较?
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 系统。
我想进行不区分大小写的字符串比较。实现该目标的最简单方法是什么?我有以下代码执行区分大小写的操作。
#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 系统。