ngx_string.c
void ngx_strlow(u_char *dst, u_char *src, size_t n);
将src的前n个字符转换成小写存放在dst字符串当中,调用者需要保证dst指向的空间大于等于n。操作不会对原字符串产生变动。如要更改原字符串,可以:
大写转小写
#define ngx_tolower(c) (u_char) ((c >= 'A' && c <= 'Z') ? (c | 0x20) : c)
A 65 1000001
a 97 1100001
0x20= 100000
TMOD|= 0x20等价于
TMOD= TMOD|0x20
表示将TMOD的第5位置1,而后者表示直接赋值。
#define ngx_toupper(c) (u_char) ((c >= 'a' && c <= 'z') ? (c & ~0x20) : c)
void ngx_strlow(u_char *dst, u_char *src, size_t n);
将src的前n个字符转换成小写存放在dst字符串当中,调用者需要保证dst指向的空间大于等于n。操作不会对原字符串产生变动。如要更改原字符串,可以:
ngx_str_t str = ngx_string("hello world"); ngx_strlow(str->data, str->data, str->len);
void
ngx_strlow(u_char *dst, u_char *src, size_t n)
{
while (n) {
*dst = ngx_tolower(*src);
dst++;
src++;
n--;
}
}
大写转小写
#define ngx_tolower(c) (u_char) ((c >= 'A' && c <= 'Z') ? (c | 0x20) : c)
A 65 1000001
a 97 1100001
0x20= 100000
TMOD|= 0x20等价于
TMOD= TMOD|0x20
表示将TMOD的第5位置1,而后者表示直接赋值。
#define ngx_toupper(c) (u_char) ((c >= 'a' && c <= 'z') ? (c & ~0x20) : c)