函数

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 字符串。