头文件:#include <string.h>
strnicmp() 用来比较两个字符串的前n个字符,不区分大小写,其原型为:
int strnicmp ( const char * str1, const char * str2, size_t n );
【参数】str1, str2 为需要比较的两个字符串,n为要比较的字符的数目。
【返回值】若str1与str2的前n个字符相同,则返回0;若s1大于s2,则返回大于0的值;若s1 若小于s2,则返回小于0的值。
与strncmp()不同的是,如果两个字符不同,GCC和VC都返回-1或1,而不是返回对应的ASCII的差值。
有关strnicmp()的其他说明请查看strncmp(),这里仅举例演示,不再赘述。
另外一个不区分大小写比较字符串前n个字符的函数是strncmpi(),strncmpi()是strnicmp()的宏定义,实际未提供此函数。【函数示例】对6组字符串进行比较。
#include<stdio.h>
#include<string.h>
int main(void){
char* s1 = "http://www.cdsy.xyz/computer/programme/C_language/";
char* s2 = "HTTP://www.cdsy.xyz/computer/programme/C_language/";
char* s3 = "abc";
char* s4 = "abcxyz";
char* s5 = "123456";
char* s6 = "123";
printf("s1-s2=%d\n", strnicmp(s1, s2, 20)); // 是否区分大小写
printf("s3-s4=%d\n", strnicmp(s3, s4, 100)); // s3的长度小于s4
printf("s5-s6=%d\n", strnicmp(s5, s6, 100)); // s5的长度大于s6
return 0;
}
VC6.0下运行结果:
GCC下运行结果: