字符串实用工具

字符串实用工具

本节介绍了一些用于创建、复制和操作字符串的实用函数。

请注意,函数 g_printf()g_fprintf()g_sprintf()g_vprintf()g_vfprintf()g_vsprintf()g_vasprintf() 在标头文件 gprintf.h 中声明,它未包含在 glib.h 中(否则使用 glib.h 会拖入 stdio.h),因此您必须显式包含 <glib/gprintf.h> 才能使用 GLib printf() 函数。

字符串精确度缺陷

虽然您可以使用 printf() 函数来设置 UTF-8 字符串的格式,请注意 %Ns 参数的精确度解释为要打印的字节数,而不是字符数。最重要的是,printf() 函数的 GNU libc 实现具有“特性”,它检查为 %Ns 参数提供的字符串是否由当前编码中的一整个字符数组成。因此,除非您确定总处于 UTF-8 本地或知道您的文本限于 ASCII,否则避免使用 %Ns。如果您打算为一定数量的列设置字符串的格式,那么 %Ns 并不是一种正确的解决方案,因为它无法解决宽字符(请参见 g_unichar_iswide())。

另请注意,有各种平台相关的 printf() 参数。GLib 提供了这些参数的平台无关宏,应该使用这些宏。一个常见的示例是 G_GUINT64_FORMAT,应使用该宏而不是 %llu 或类似的参数来设置 64 位整数的格式。这些宏全部命名为 G_*_FORMAT;请参见 基本类型

通用字符串操纵

对于 C 中 GLib 的用户,还存在 g_set_str() 内联函数,用于设置字符串并处理新值的复制和旧值的释放。

字符串复制

打印

ASCII

ASCII 解析

ASCII 比较

ASCII 大小写转换

ASCII 字符串操作

ASCII 数字操作

ASCII 数字解析

空格去除

查找和替换

拆分和连接

字符串数组

字符串数组生成器

POSIX 错误

已弃用的 API