C语言strcasecmp函数和strncasecmp函数介绍和实例测试

2022-05-20 16:44:31 浏览数 (1)

一、 strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。若参数s1和s2字符串相同则返回0。s1长度大于s2长度则返回大于0 的值,s1 长度若小于s2 长度则返回小于0的值。

代码语言:javascript复制
unsigned char strcasecmp(const char *s1, const char *s2)
{
    unsigned char c1 , c2;
    do{
        c1 = tolower(*s1  );
        //These functions convert lowercase letters to uppercase, and vice versa.
        c2 = tolower(*s2  );
    }while(c1 == c2 && c1 != 0);
 
    return c1 - c2;
}

二、strncasecmp()用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异。若参数s1和s2字符串相同则返回0 s1若大于s2则返回大于0的值 s1若小于s2则返回小于0的值。

代码语言:javascript复制
unsigned char strncasecmp(const char *s1, const char *s2, int n)  
{  
    unsigned char c1, c2;  
    do
    {      
       c1 = tolower(*s1  );      
       c2 = tolower(*s2  );  
    } while((--n > 0) && c1 == c2 && c1 != 0);  
 
   return c1 - c2;  
}  

三、C语言测试实例

代码语言:javascript复制
#include <string.h>
#include<stdio.h>
 
void main()
{
    char *a="abcdefg";
    char *b="aBCDEFG";
    
    char *c="aBcDet";
    char *d="AbCdEf";
    if(!strcasecmp(a,b))
      printf("%s=%sn",a,b);
    else
      printf("%s!=%sn",a,b);    
  
    if(!strcasecmp(c,d))
      printf("%s=%sn",c,d);
    else
      printf("%s!=%sn",c,d);    
  
  
    if(!strncasecmp("android","androido",7))
        printf("android=androido 7n");
    else
        printf("android!=androido 7n");
    
    
    if(!strncasecmp("android","androido",8))
        printf("android=androido 8n");
    else
        printf("android!=androido 8n");
    
    if(!strncasecmp("androidO","androido",8))
        printf("androidO=androido 8n");
    else
        printf("androidO!=androido 8n");
    
}

四、测试结果

0 人点赞