GLib Reference Manual | ||||
---|---|---|---|---|
#include <glib.h> GString; GString* g_string_new (const gchar *init); GString* g_string_new_len (const gchar *init, gssize len); GString* g_string_sized_new (gsize dfl_size); GString* g_string_assign (GString *string, const gchar *rval); #define g_string_sprintf #define g_string_sprintfa void g_string_vprintf (GString *string, const gchar *format, va_list args); void g_string_append_vprintf (GString *string, const gchar *format, va_list args); void g_string_printf (GString *string, const gchar *format, ...); void g_string_append_printf (GString *string, const gchar *format, ...); GString* g_string_append (GString *string, const gchar *val); GString* g_string_append_c (GString *string, gchar c); GString* g_string_append_unichar (GString *string, gunichar wc); GString* g_string_append_len (GString *string, const gchar *val, gssize len); GString* g_string_append_uri_escaped (GString *string, const char *unescaped, const char *reserved_chars_allowed, gboolean allow_utf8); GString* g_string_prepend (GString *string, const gchar *val); GString* g_string_prepend_c (GString *string, gchar c); GString* g_string_prepend_unichar (GString *string, gunichar wc); GString* g_string_prepend_len (GString *string, const gchar *val, gssize len); GString* g_string_insert (GString *string, gssize pos, const gchar *val); GString* g_string_insert_c (GString *string, gssize pos, gchar c); GString* g_string_insert_unichar (GString *string, gssize pos, gunichar wc); GString* g_string_insert_len (GString *string, gssize pos, const gchar *val, gssize len); GString* g_string_overwrite (GString *string, gsize pos, const gchar *val); GString* g_string_overwrite_len (GString *string, gsize pos, const gchar *val, gssize len); GString* g_string_erase (GString *string, gssize pos, gssize len); GString* g_string_truncate (GString *string, gsize len); GString* g_string_set_size (GString *string, gsize len); gchar* g_string_free (GString *string, gboolean free_segment); GString* g_string_up (GString *string); GString* g_string_down (GString *string); guint g_string_hash (const GString *str); gboolean g_string_equal (const GString *v, const GString *v2);
A GString is similar to a standard C string, except that it grows automatically as text is appended or inserted. Also, it stores the length of the string, so can be used for binary data with embedded nul bytes.
typedef struct { gchar *str; gsize len; gsize allocated_len; } GString;
The GString struct contains the public fields of a GString.
gchar *str ; |
points to the character data. It may move as text is added.
The str field is nul-terminated and so
can be used as an ordinary C string.
|
gsize len ; |
contains the length of the string, not including the terminating nul byte. |
gsize allocated_len ; |
the number of bytes that can be stored in the
string before it needs to be reallocated. May be larger than len .
|
GString* g_string_new (const gchar *init);
Creates a new GString, initialized with the given string.
init : |
the initial text to copy into the string |
Returns : | the new GString |
GString* g_string_new_len (const gchar *init, gssize len);
Creates a new GString with len
bytes of the init
buffer.
Because a length is provided, init
need not be nul-terminated,
and can contain embedded nul bytes.
Since this function does not stop at nul bytes, it is the caller's
responsibility to ensure that init
has at least len
addressable
bytes.
init : |
initial contents of the string |
len : |
length of init to use
|
Returns : | a new GString |
GString* g_string_sized_new (gsize dfl_size);
Creates a new GString, with enough space for dfl_size
bytes. This is useful if you are going to add a lot of
text to the string and don't want it to be reallocated
too often.
dfl_size : |
the default size of the space allocated to hold the string |
Returns : | the new GString |
GString* g_string_assign (GString *string, const gchar *rval);
Copies the bytes from a string into a GString,
destroying any previous contents. It is rather like
the standard strcpy()
function, except that you do not
have to worry about having enough space to copy the string.
string : |
the destination GString. Its current contents are destroyed. |
rval : |
the string to copy into string
|
Returns : | string
|
#define g_string_sprintf
g_string_sprintf
is deprecated and should not be used in newly-written code. This function has been renamed to g_string_printf()
.
Writes a formatted string into a GString.
This is similar to the standard sprintf()
function,
except that the GString buffer automatically expands
to contain the results. The previous contents of the
GString are destroyed.
string : |
a GString |
format : |
the string format. See the sprintf() documentation
|
... : |
the parameters to insert into the format string |
#define g_string_sprintfa
g_string_sprintfa
is deprecated and should not be used in newly-written code. This function has been renamed to g_string_append_printf()
Appends a formatted string onto the end of a GString.
This function is similar to g_string_sprintf()
except that
the text is appended to the GString.
string : |
a GString |
format : |
the string format. See the sprintf() documentation
|
... : |
the parameters to insert into the format string |
void g_string_vprintf (GString *string, const gchar *format, va_list args);
Writes a formatted string into a GString.
This function is similar to g_string_printf()
except that
the arguments to the format string are passed as a va_list.
string : |
a GString |
format : |
the string format. See the printf() documentation
|
args : |
the parameters to insert into the format string |
Since 2.14
void g_string_append_vprintf (GString *string, const gchar *format, va_list args);
Appends a formatted string onto the end of a GString.
This function is similar to g_string_append_printf()
except that the arguments to the format string are passed
as a va_list.
string : |
a GString |
format : |
the string format. See the printf() documentation
|
args : |
the list of arguments to insert in the output |
Since 2.14
void g_string_printf (GString *string, const gchar *format, ...);
Writes a formatted string into a GString.
This is similar to the standard sprintf()
function,
except that the GString buffer automatically expands
to contain the results. The previous contents of the
GString are destroyed.
string : |
a GString |
format : |
the string format. See the printf() documentation
|
... : |
the parameters to insert into the format string |
void g_string_append_printf (GString *string, const gchar *format, ...);
Appends a formatted string onto the end of a GString.
This function is similar to g_string_printf()
except
that the text is appended to the GString.
string : |
a GString |
format : |
the string format. See the printf() documentation
|
... : |
the parameters to insert into the format string |
GString* g_string_append (GString *string, const gchar *val);
Adds a string onto the end of a GString, expanding it if necessary.
string : |
a GString |
val : |
the string to append onto the end of string
|
Returns : | string
|
GString* g_string_append_c (GString *string, gchar c);
Adds a byte onto the end of a GString, expanding it if necessary.
string : |
a GString |
c : |
the byte to append onto the end of string
|
Returns : | string
|
GString* g_string_append_unichar (GString *string, gunichar wc);
Converts a Unicode character into UTF-8, and appends it to the string.
string : |
a GString |
wc : |
a Unicode character |
Returns : | string
|
GString* g_string_append_len (GString *string, const gchar *val, gssize len);
Appends len
bytes of val
to string
. Because len
is
provided, val
may contain embedded nuls and need not
be nul-terminated.
Since this function does not stop at nul bytes, it is
the caller's responsibility to ensure that val
has at
least len
addressable bytes.
string : |
a GString |
val : |
bytes to append |
len : |
number of bytes of val to use
|
Returns : | string
|
GString* g_string_append_uri_escaped (GString *string, const char *unescaped, const char *reserved_chars_allowed, gboolean allow_utf8);
Appends unescaped
to string
, escaped any characters that
are reserved in URIs using URI-style escape sequences.
string : |
a GString |
unescaped : |
a string |
reserved_chars_allowed : |
a string of reserved characters allowed to be used |
allow_utf8 : |
set TRUE if the escaped string may include UTF8 characters
|
Returns : | string
|
Since 2.16
GString* g_string_prepend (GString *string, const gchar *val);
Adds a string on to the start of a GString, expanding it if necessary.
string : |
a GString |
val : |
the string to prepend on the start of string
|
Returns : | string
|
GString* g_string_prepend_c (GString *string, gchar c);
Adds a byte onto the start of a GString, expanding it if necessary.
GString* g_string_prepend_unichar (GString *string, gunichar wc);
Converts a Unicode character into UTF-8, and prepends it to the string.
string : |
a GString |
wc : |
a Unicode character |
Returns : | string
|
GString* g_string_prepend_len (GString *string, const gchar *val, gssize len);
Prepends len
bytes of val
to string
.
Because len
is provided, val
may contain
embedded nuls and need not be nul-terminated.
Since this function does not stop at nul bytes,
it is the caller's responsibility to ensure that
val
has at least len
addressable bytes.
string : |
a GString |
val : |
bytes to prepend |
len : |
number of bytes in val to prepend
|
Returns : | string
|
GString* g_string_insert (GString *string, gssize pos, const gchar *val);
Inserts a copy of a string into a GString, expanding it if necessary.
string : |
a GString |
pos : |
the position to insert the copy of the string |
val : |
the string to insert |
Returns : | string
|
GString* g_string_insert_c (GString *string, gssize pos, gchar c);
Inserts a byte into a GString, expanding it if necessary.
string : |
a GString |
pos : |
the position to insert the byte |
c : |
the byte to insert |
Returns : | string
|
GString* g_string_insert_unichar (GString *string, gssize pos, gunichar wc);
Converts a Unicode character into UTF-8, and insert it into the string at the given position.
string : |
a GString |
pos : |
the position at which to insert character, or -1 to append at the end of the string |
wc : |
a Unicode character |
Returns : | string
|
GString* g_string_insert_len (GString *string, gssize pos, const gchar *val, gssize len);
Inserts len
bytes of val
into string
at pos
.
Because len
is provided, val
may contain embedded
nuls and need not be nul-terminated. If pos
is -1,
bytes are inserted at the end of the string.
Since this function does not stop at nul bytes, it is
the caller's responsibility to ensure that val
has at
least len
addressable bytes.
string : |
a GString |
pos : |
position in string where insertion should
happen, or -1 for at the end
|
val : |
bytes to insert |
len : |
number of bytes of val to insert
|
Returns : | string
|
GString* g_string_overwrite (GString *string, gsize pos, const gchar *val);
Overwrites part of a string, lengthening it if necessary.
string : |
a GString |
pos : |
the position at which to start overwriting |
val : |
the string that will overwrite the string starting at pos
|
Returns : | string
|
Since 2.14
GString* g_string_overwrite_len (GString *string, gsize pos, const gchar *val, gssize len);
Overwrites part of a string, lengthening it if necessary. This function will work with embedded nuls.
string : |
a GString |
pos : |
the position at which to start overwriting |
val : |
the string that will overwrite the string starting at pos
|
len : |
the number of bytes to write from val
|
Returns : | string
|
Since 2.14
GString* g_string_erase (GString *string, gssize pos, gssize len);
Removes len
bytes from a GString, starting at position pos
.
The rest of the GString is shifted down to fill the gap.
string : |
a GString |
pos : |
the position of the content to remove |
len : |
the number of bytes to remove, or -1 to remove all following bytes |
Returns : | string
|
GString* g_string_truncate (GString *string, gsize len);
Cuts off the end of the GString, leaving the first len
bytes.
string : |
a GString |
len : |
the new size of string
|
Returns : | string
|
GString* g_string_set_size (GString *string, gsize len);
Sets the length of a GString. If the length is less than the current length, the string will be truncated. If the length is greater than the current length, the contents of the newly added area are undefined. (However, as always, string->str[string->len] will be a nul byte.)
string : |
a GString |
len : |
the new length |
Returns : | string
|
gchar* g_string_free (GString *string, gboolean free_segment);
Frees the memory allocated for the GString.
If free_segment
is TRUE
it also frees the character data.
GString* g_string_up (GString *string);
g_string_up
has been deprecated since version 2.2 and should not be used in newly-written code. This function uses the locale-specific
toupper()
function, which is almost never the right thing.
Use g_string_ascii_up()
or g_utf8_strup()
instead.
Converts a GString to uppercase.
string : |
a GString |
Returns : | string
|
GString* g_string_down (GString *string);
g_string_down
has been deprecated since version 2.2 and should not be used in newly-written code. This function uses the locale-specific
tolower()
function, which is almost never the right thing.
Use g_string_ascii_down()
or g_utf8_strdown()
instead.
Converts a GString to lowercase.
guint g_string_hash (const GString *str);
Creates a hash code for str
; for use with GHashTable.
str : |
a string to hash |
Returns : | hash code for str
|