跳转至

strings

strings 模块提供字符串操作相关的函数,包括位查找、忽略大小写的字符串比较等功能。

头文件清单

#include "open_source/musl/include/strings.h"

接口清单

接口名称 功能简述
ffs 查找整数中第一个置1的位
strcasecmp 忽略大小写比较两个字符串
strcasecmp_l 基于指定区域忽略大小写比较两个字符串
strncasecmp 忽略大小写比较两个字符串的前n个字符
strncasecmp_l 基于指定区域忽略大小写比较两个字符串的前n个字符

Functions

ffs

函数声明

int ffs(int x)

头文件清单

#include "open_source/musl/include/strings.h"

功能说明

  • 查找整数参数中第一个置1的位(最低位为第1位)
  • 返回第一个置1位的位号(从1开始计数)
  • 若参数为0,则返回0

入参

名称 参数类型 详细说明 约束取值范围
x int 待检测的整数值 INT_MIN ~ INT_MAX

返回值

  • 返回类型:int
返回值 文字含义 触发场景
0 无置1位 x为0
1 ~ 32 第一个置1位的位号 x中存在置1位

strcasecmp

函数声明

int strcasecmp(const char *, const char *)

头文件清单

#include "open_source/musl/include/strings.h"

功能说明

  • 忽略大小写比较两个字符串
  • 将两个字符串的对应字符转换为小写后逐个比较,直到遇到不相等的字符或字符串结束
  • 返回两个字符串首个不等字符(小写形式)的ASCII码差值

入参

名称 参数类型 详细说明 约束取值范围
_l const char * 待比较的第一个字符串指针 非NULL
_r const char * 待比较的第二个字符串指针 非NULL

返回值

  • 返回类型:int
返回值 文字含义 触发场景
0 两字符串相等(忽略大小写) 两字符串内容相同
< 0 第一个字符串小于第二个字符串 首个不等字符的小写ASCII码前者小于后者
> 0 第一个字符串大于第二个字符串 首个不等字符的小写ASCII码前者大于后者

strcasecmp_l

函数声明

int strcasecmp_l(const char *, const char *, locale_t)

头文件清单

#include "open_source/musl/include/strings.h"

功能说明

  • 基于指定区域设置忽略大小写比较两个字符串
  • 当前实现内部调用strcasecmp,区域参数不影响比较结果
  • 返回两个字符串首个不等字符(小写形式)的ASCII码差值

入参

名称 参数类型 详细说明 约束取值范围
l const char * 待比较的第一个字符串指针 非NULL
r const char * 待比较的第二个字符串指针 非NULL
loc locale_t 区域设置 有效的locale_t对象

返回值

  • 返回类型:int
返回值 文字含义 触发场景
0 两字符串相等(忽略大小写) 两字符串内容相同
< 0 第一个字符串小于第二个字符串 首个不等字符的小写ASCII码前者小于后者
> 0 第一个字符串大于第二个字符串 首个不等字符的小写ASCII码前者大于后者

strncasecmp

函数声明

int strncasecmp(const char *, const char *, size_t)

头文件清单

#include "open_source/musl/include/strings.h"

功能说明

  • 忽略大小写比较两个字符串的前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

函数声明

int strncasecmp_l(const char *, const char *, size_t, locale_t)

头文件清单

#include "open_source/musl/include/strings.h"

功能说明

  • 基于指定区域设置忽略大小写比较两个字符串的前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码前者大于后者