美文网首页
c语言倒序匹配字符串

c语言倒序匹配字符串

作者: rain99_0550 | 来源:发表于2019-03-24 20:05 被阅读0次

通常c库中提供字符串查找函数strstr,但是有时候需要从字符串末尾倒序查找指定字符串,我在学习邮件透明加密时,用到此函数,现在分享一下。

//倒序查找字符串

//使用方法同系统自带的一样,n是s2的有效长度减一

u_char* ngx_strlcasestrn_r(ngx_event_t *ev,u_char *s1, u_char *last, u_char *s2, size_t n){

ngx_uint_t  c1, c2;

    u_char *ptmp = NULL;

    c2 = (ngx_uint_t)*s2++;

    c2 = (c2 >= 'A' && c2 <= 'Z') ? (c2 | 0x20) : c2;

    ptmp = last - n - 1;

    do {

        do {

            if (ptmp < s1) {

                return NULL;

            }

            c1 = (ngx_uint_t) *ptmp--;

            c1 = (c1 >= 'A' && c1 <= 'Z') ? (c1 | 0x20) : c1;

        } while (c1 != c2);

    } while (ngx_strncasecmp(ptmp + 2, s2, n) != 0);

    return ptmp + 1;     

}

ngx_int_t

ngx_strncasecmp(u_char *s1, u_char *s2, size_t n)

{

    ngx_uint_t  c1, c2;

    while (n) {

        c1 = (ngx_uint_t) *s1++;

        c2 = (ngx_uint_t) *s2++;

        c1 = (c1 >= 'A' && c1 <= 'Z') ? (c1 | 0x20) : c1;

        c2 = (c2 >= 'A' && c2 <= 'Z') ? (c2 | 0x20) : c2;

        if (c1 == c2) {

            if (c1) {

                n--;

                continue;

            }

            return 0;

        }

        return c1 - c2;

    }

    return 0;

}

最后介绍一下邮件透明加密。目前很多邮件明文存储在服务器上很不安全,但某些邮件加密产品部署麻烦,需要用到更改账户名等等。而透明加密除了可以加密邮件,不需要用户去更改使用习惯,部署非常方便。其中天御云安的隐密邮,在透明加密方面做的很好。网址是:https://mail.tyyunan.com/

关键字:c   倒序    字符串   透明加密

相关文章

  • c语言倒序匹配字符串

    通常c库中提供字符串查找函数strstr,但是有时候需要从字符串末尾倒序查找指定字符串,我在学习邮件透明加密时,用...

  • 使用C语言使字符串倒序

    C语言中的字符串不行java的一样是一个对象,C中的字符串都是用字符串数组所组成,如果需要手动都字符串倒序的话,需...

  • 百度笔试150题

    1、用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。 2、用C语言实现函数void ...

  • 单行代码算法解答(一)

    在实际工作当中,我们常常需要对数据进行处理,比如简单的数组元素相加,字符串的倒序排列等等。如果使用C语言来解答此类...

  • 字符串匹配(支持通配符* ? )

    设*可以匹配0~n个任意字符,?可以匹配一个任意字符,实现字符串含通配符的匹配算法,查找算法 参考阅读 c语言实现...

  • C语言钩子函数

    C语言钩子函数 C语言钩子函数atexit挂载的函数会在程序正常终止时,按照挂载的顺序倒序执行挂载的函数,如下所示...

  • 大数据算法系列9:字符串匹配问题,海量字符串处理

    一. 字符串匹配 1.1 字符串匹配 字符串匹配:字符串匹配在实际工作中经常遇到,但是我们经常使用的是编程语言自带...

  • 基础合集-常用方法(string)

    字符串的常用方法: 字符串切片:部分切片,步进切片,倒序切片 eg:li3=li[::-2]#倒序,并步进2 1....

  • Python练习小题

    倒序一个整数 例如 1234 --> 4321 进阶版去掉列表 Pyhton魔性版 通过字符串倒序

  • JS中实现字符串和数组的相互转化

    场景:给定字符串,实现字符串倒序var str = 'jirenguhungervalley'输出'yellavr...

网友评论

      本文标题:c语言倒序匹配字符串

      本文链接:https://www.haomeiwen.com/subject/xnhpvqtx.html