我有一个问题,为什么我的代码在我使用strcmpi时不会编译。我用strcmp测试了这个相同的代码并且工作正常。不知道为什么这不起作用。
这是我得到的编译错误:
gcc -std=c99 strcmpi_test.c -o strcmpi_test
strcmpi_test.c: In function 'main':
strcmpi_test.c:15: warning: implicit declaration of function 'strcmpi'
strcmpi_test.c:30:2: warning: no newline at end of file
/tmp/cceKXLcn.o: In function `main':
strcmpi_test.c:(.text+0x50): undefined reference to `strcmpi'
collect2: ld returned 1 exit status
#include <stdio.h>
#include <string.h>
int main()
{
char name[10];
char name2[10] = "bob";
printf("what is your name : ");
fgets(name,10,stdin);
if(strcmpi(name,name2) == 1)
{
printf("name == %s name2 == %s your names are the same\n",name,name2);
} else {
printf("name == %s name2 == %s your names are NOT the same\n",name,name2);
}
return 0;
}
答案 0 :(得分:1)
strcmpi
不是标准的C函数。并且编译器报告它没有函数strcmpi
的声明。
您可以使用循环编写一个类似的函数,并在标题toupper
中标记tolower
或<ctype.h>