查找字符串,忽略大小写--高效

本文介绍了一个用于在源字符串中查找子串的函数,该函数能够忽略大小写进行匹配,并允许指定搜索长度限制。通过逐字符比较,实现了一个实用的字符串搜索功能。

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

////////////////////////////////////////////////////////////////////////
// 描    述:  查找字符串,忽略大小写
// 作    者:
// 参数说明:  @str1 为源字符串 @str2 子串内容 @iStep 长度
// 返 回 值:  char *  去掉空格之后的字符串
//////////////////////////////////////////////////////////////////////////
char *strnstrcase(const char * str1,  const char * str2, int iStep)
{
    char *cp = (char *) str1;
    char *s1, *s2;

    if (*str2=='\0')
        return((char *)str1);

    while (*cp!='\0')
    {
        s1 = cp;
        s2 = (char *)str2;

        while (*s1 && *s2 && (!(*s1 - *s2) || !(*s1 - *s2 - 32) || !(*s1 - *s2 + 32)))
        {
            s1++, s2++;
        }

        if (*s2 == '\0')
            return (cp);
        cp++;
        if (iStep > 0&&cp- str1>iStep)
        {
            break;
        }
    }
    return(NULL);
}    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值