strings
strings 模块提供字符串操作相关的函数,包括位查找、忽略大小写的字符串比较等功能。
头文件清单
接口清单
| 接口名称 | 功能简述 |
|---|---|
| ffs | 查找整数中第一个置1的位 |
| strcasecmp | 忽略大小写比较两个字符串 |
| strcasecmp_l | 基于指定区域忽略大小写比较两个字符串 |
| strncasecmp | 忽略大小写比较两个字符串的前n个字符 |
| strncasecmp_l | 基于指定区域忽略大小写比较两个字符串的前n个字符 |
Functions
ffs
函数声明
头文件清单
功能说明
- 查找整数参数中第一个置1的位(最低位为第1位)
- 返回第一个置1位的位号(从1开始计数)
- 若参数为0,则返回0
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| x | int | 待检测的整数值 | INT_MIN ~ INT_MAX |
返回值
- 返回类型:int
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 无置1位 | x为0 |
| 1 ~ 32 | 第一个置1位的位号 | x中存在置1位 |
strcasecmp
函数声明
头文件清单
功能说明
- 忽略大小写比较两个字符串
- 将两个字符串的对应字符转换为小写后逐个比较,直到遇到不相等的字符或字符串结束
- 返回两个字符串首个不等字符(小写形式)的ASCII码差值
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| _l | const char * | 待比较的第一个字符串指针 | 非NULL |
| _r | const char * | 待比较的第二个字符串指针 | 非NULL |
返回值
- 返回类型:int
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 两字符串相等(忽略大小写) | 两字符串内容相同 |
| < 0 | 第一个字符串小于第二个字符串 | 首个不等字符的小写ASCII码前者小于后者 |
| > 0 | 第一个字符串大于第二个字符串 | 首个不等字符的小写ASCII码前者大于后者 |
strcasecmp_l
函数声明
头文件清单
功能说明
- 基于指定区域设置忽略大小写比较两个字符串
- 当前实现内部调用strcasecmp,区域参数不影响比较结果
- 返回两个字符串首个不等字符(小写形式)的ASCII码差值
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| l | const char * | 待比较的第一个字符串指针 | 非NULL |
| r | const char * | 待比较的第二个字符串指针 | 非NULL |
| loc | locale_t | 区域设置 | 有效的locale_t对象 |
返回值
- 返回类型:int
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 两字符串相等(忽略大小写) | 两字符串内容相同 |
| < 0 | 第一个字符串小于第二个字符串 | 首个不等字符的小写ASCII码前者小于后者 |
| > 0 | 第一个字符串大于第二个字符串 | 首个不等字符的小写ASCII码前者大于后者 |
strncasecmp
函数声明
头文件清单
功能说明
- 忽略大小写比较两个字符串的前n个字符
- 若n为0则直接返回0,不执行任何比较
- 将两个字符串的对应字符转换为小写后逐个比较,最多比较n个字符
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| _l | const char * | 待比较的第一个字符串指针 | 非NULL |
| _r | const char * | 待比较的第二个字符串指针 | 非NULL |
| n | size_t | 最大比较字符数 | 0 ~ SIZE_MAX |
返回值
- 返回类型:int
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 两字符串前n个字符相等(忽略大小写) | 比较范围内字符串内容相同 |
| < 0 | 第一个字符串小于第二个字符串 | 首个不等字符的小写ASCII码前者小于后者 |
| > 0 | 第一个字符串大于第二个字符串 | 首个不等字符的小写ASCII码前者大于后者 |
strncasecmp_l
函数声明
头文件清单
功能说明
- 基于指定区域设置忽略大小写比较两个字符串的前n个字符
- 当前实现内部调用strncasecmp,区域参数不影响比较结果
- 若n为0则直接返回0,不执行任何比较
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| l | const char * | 待比较的第一个字符串指针 | 非NULL |
| r | const char * | 待比较的第二个字符串指针 | 非NULL |
| n | size_t | 最大比较字符数 | 0 ~ SIZE_MAX |
| loc | locale_t | 区域设置 | 有效的locale_t对象 |
返回值
- 返回类型:int
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 两字符串前n个字符相等(忽略大小写) | 比较范围内字符串内容相同 |
| < 0 | 第一个字符串小于第二个字符串 | 首个不等字符的小写ASCII码前者小于后者 |
| > 0 | 第一个字符串大于第二个字符串 | 首个不等字符的小写ASCII码前者大于后者 |