函数
GLibstrsplit_set
自:2.4
声明 [src]
gchar**
g_strsplit_set (
const gchar* string,
const gchar* delimiters,
gint max_tokens
)
说明 [src]
将 string
分拆为若干个不包含 delimiters
中任何字符的记号。记号是最长的(可能是空的)不包含 delimiters
中任何字符的字符串。如果达到 max_tokens
,则将剩余部分追加到最后一个记号。
例如,g_strsplit_set (“abc:def/ghi”, “:/”, -1) 的结果是一个包含三个字符串“abc”、“def”和“ghi”的数组。
g_strsplit_set (“:def/ghi:”, “:/”, -1) 的结果是一个包含四个字符串“”、“def”、“ghi”和“”。
作为特殊情况,拆分空字符串“”的结果是一个空数组,而不是一个包含一个字符串的数组。出现这种情况的特别原因在于,与空元素始终如一地处理相比,能够表示空数组通常更有用。如果您确实需要表示空元素,您需要在调用 g_strsplit_set()
之前检查空字符串。
请注意,此函数作用于字节而不是字符,因此无法用于除了 ASCII 字符之外的任何情况的 UTF-8 字符串的分隔。
自 2.4 起可用
参数
string
-
类型:
const gchar*
要拆分的字符串。
数据归函数调用者所有。 该值是 NUL 终止的 UTF-8 字符串。 delimiters
-
类型:
const gchar*
包含用于拆分字符串的字符的字符串。可以为空,这将不会导致任何字符串拆分。
数据归函数调用者所有。 该值是 NUL 终止的 UTF-8 字符串。 max_tokens
-
类型:
gint
将
string
拆分为的最大记号数。如果小于 1,则将完整拆分字符串。
返回值
类型: utf8
数组
一个新分配的字符串数组。使用 g_strfreev()
释放它。
该数组以 NULL 终止。 |
函数调用者获取数据的归属权,并负责释放该数据。 |
每个元素都是一个 NUL 终止的 UTF-8 字符串。 |