gpt4 book ai didi

c - GCC |警告 : implicit declaration of function '_stricmp' [-Wimplicit-function-declaration]|

转载 作者:行者123 更新时间:2023-11-30 16:17:09 25 4
gpt4 key购买 nike

用纯 C 语言编写..

但我已将 string.h 包含为:

#include <string.h>     // for strnlen
#include <stdlib.h> // for _countof, _itoa fns, _MAX_COUNT macros
#include <conio.h> // for _getch
#include <process.h> // for system
#include <io.h> // for findfirst
#include <locale.h>

在这里调用:

if( argc != 2 )   {
printf("Usage: extension .001 or .alm only\n");
return(0);
}
else printf("Read %d %s\n",argc, argv[1]);


if( !_getcwd((char *)cdir, sizeof(cdir))) {
printf("\n ! ERROR ! obtaining current disc directory!");
printf("\n .. any key ..");
_getch();
exit(-1);
}
printf("\n Directory: %s\n", cdir);

if(!_stricmp(argv[1],"alm"))
sprintf(csrch,"*.alm");
else
sprintf(csrch,"*.001");

那么为什么会出现错误/警告?

最佳答案

也许您可以手动将字符串转换为全部小写,然后使用 strcmp?

int stricmp(const char *string1, const char *string2) {
char* tmp1 = malloc(sizeof(string1));
char* tmp2 = malloc(sizeof(string2));

strcpy(tmp1, string1);
strcpy(tmp2, string2);

for (int i = 0; i < strlen(tmp1); i++)
tmp1[i] = tolower(tmp1[i]);

for (int i = 0; i < strlen(tmp2); i++)
tmp2[i] = tolower(tmp2[i]);

int res = strcmp(tmp1, tmp2);

free(tmp1);
free(tmp2);

return res;
}

关于c - GCC |警告 : implicit declaration of function '_stricmp' [-Wimplicit-function-declaration]|,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56330191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com