2021-03-08 C语言strcasecmp函数和strncasecmp函数介绍和实例测试

本文介绍了C语言中用于忽略大小写比较字符串的两个函数:strcasecmp()和strncasecmp()。这两个函数分别用于完整字符串和指定长度子串的比较,并提供了相应的测试实例来展示其用法。通过这两个函数,程序员可以在不考虑字符大小写的情况下进行字符串的比较操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

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

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的值。

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语言测试实例

#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=%s\n",a,b);
    else
	  printf("%s!=%s\n",a,b);	
  
    if(!strcasecmp(c,d))
      printf("%s=%s\n",c,d);
    else
	  printf("%s!=%s\n",c,d);	
  
  
    if(!strncasecmp("android","androido",7))
        printf("android=androido 7\n");
    else
        printf("android!=androido 7\n");
	
	
    if(!strncasecmp("android","androido",8))
        printf("android=androido 8\n");
    else
        printf("android!=androido 8\n");
	
	if(!strncasecmp("androidO","androido",8))
        printf("androidO=androido 8\n");
    else
        printf("androidO!=androido 8\n");
	
}

四、测试结果

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值