nginx string 函数说明文档

ngx_string.h提供了一些操作字符串的函数,现总结如下:


#define ngx_string(str)     { sizeof(str) - 1, (u_char *) str } 

把以\0结束的字符串转换为ngx_str_t类型


#define ngx_null_string     { 0, NULL }

可以把一个ngx_str_t类型的变量赋为空


#define ngx_str_set(str, text)       (str)->len = sizeof(text) - 1; (str)->data = (u_char *) text

把text赋给str


#define ngx_str_null(str)   (str)->len = 0; (str)->data = NULL

把str赋空


#define ngx_toupper(c)      (u_char) ((c >= 'a' && c <= 'z') ? (c & ~0x20) : c)

把c变成对应的大写字母


#define ngx_tolower(c)      (u_char) ((c >= 'A' && c <= 'Z') ? (c | 0x20) : c)

把c变成对应的小写字母


void ngx_strlow(u_char *dst, u_char *src, size_t n);

把src里面的前n个字符变成对应的小写放在dst里面


#define ngx_strncmp(s1, s2, n)  strncmp((const char *) s1, (const char *) s2, n)

比较s1,s2前n个字符


#define ngx_strcmp(s1, s2)  strcmp((const char *) s1, (const char *) s2)

比较s1,s2


#define ngx_strstr(s1, s2)  strstr((const char *) s1, (const char *) s2)

找到s2第一次出现在s1的位置


#define ngx_strlen(s)       strlen((const char *) s)

计算s长度


#define ngx_strchr(s1, c)   strchr((const char *) s1, (int) c)

找到c在s1中出现的第一次的位置


static ngx_inline u_char * ngx_strlchr(u_char *p, u_char *last, u_char c)

在以p开头,以last结尾的字符串中,找到c第一次出现的位置,只比较到last对应的前一个位置。


#define ngx_memzero(buf, n)       (void) memset(buf, 0, n)

把buf开头的前n个字符置为0


#define ngx_memset(buf, c, n)     (void) memset(buf, c, n)

把buf开头的前n个字符置为c


#define ngx_cpymem(dst, src, n)   (((u_char *) memcpy(dst, src, n)) + (n))

和memcpy不同的在于,返回dst+n


u_char *ngx_cpystrn(u_char *dst, u_char *src, size_t n);

把src的前n个字符拷贝到dst中,在前n个字符中遇到\0结束


u_char *ngx_pstrdup(ngx_pool_t *pool, ngx_str_t *src);

把src的数据拷贝到pool中,返回首地址


ngx_strcasecmp(u_char *s1, u_char *s2);

比较两个字符串,不区分大小写,相等返回0


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

比较两个字符串的前n个字符


u_char *ngx_strnstr(u_char *s1, char *s2, size_t n);

判断s2是否在s1里面,区分大小写,如果s1的前n个字符中(s1最多挪动n次)没有能匹配到的,则返回NULL


u_char *  ngx_strstrn(u_char *s1, char *s2, size_t n)

该函数是判断s2是否在s1里面,区分大小写,如果在,返回s2在s1的位置指针,其中n为strlen(s2)-1


u_char * ngx_strcasestrn(u_char *s1, char *s2, size_t n)

该函数是判断s2是否在s1里面,不区分大小写,如果在,返回s2在s1的位置指针,其中n为strlen(s2)-1


u_char * ngx_strlcasestrn(u_char *s1, u_char *last, u_char *s2, size_t n)

该函数是判断s2是否在以s1开始以last结束的字符串里面,不区分大小写,如果在,返回s2在以s1开始以last结束的字符串的位置,其中n为strlen(s2)-1


ngx_int_t ngx_rstrncmp(u_char *s1, u_char *s2, size_t n);

比较s1和s2的前n个字符,区分大小写,相等返回0,如果n为0,也返回0


ngx_int_t ngx_rstrncasecmp(u_char *s1, u_char *s2, size_t n);

比较s1和s2的前n个字符,不区分大小写,相等返回0,如果n为0,也返回0


ngx_int_t ngx_memn2cmp(u_char *s1, u_char *s2, size_t n1, size_t n2);

s1的前n1个和s2的前n2个字符比较


ngx_int_t ngx_dns_strcmp(u_char *s1, u_char *s2);

这个函数没有看懂


ngx_int_t ngx_filename_cmp(u_char *s1, u_char *s2, size_t n);

也没有太懂









  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值