我已经定义了_GNU_SOURCE,但是当我尝试将strcasestr放入我的函数时,它只显示error LNK2019:在函数中引用了未解析的外部符号_strcasestr。我需要导入一个特定的库吗?我还尝试定义了:
//char *strcasestr(const char *haystack, const char *needle);
#define _GNU_SOURCE
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
我用它的方式
if ((strcasestr(str1,str2)) != NULL)
{
//code
}
有没有其他不区分大小写的比较字符串的方法?
2条答案
按热度按时间cig3rfwq1#
strcasestr
是一个非标准函数。您要将哪个库链接到您的项目?如果您在Windows中使用MingW,此函数可能不可用,因为您的程序链接到Microsoft C运行时库。相同的功能可以在名称
stristr
或_stristr
下在那里可用。否则,您可能必须编写自己的版本。
下面是一个非常简单的例子:
t40tm48m2#
你能不能用:
来自微软疯狂的文档页面:
"StrStrIA函数:
查找字符串中第一个出现的子字符串。比较不区分大小写。"
其中:
"参数:
psz第一类型:PTSTR
指向要搜索的以空值结尾的字符串的指针。
psz搜索类型:PCR扩增
指向要搜索的子字符串的指针。"
记住把shlawpi.lib添加到你的项目设置中,否则它就不会链接。