glib-string-utility-functions.html

来自「glid编写实例」· HTML 代码 · 共 1,304 行 · 第 1/5 页

HTML
1,304
字号
<html xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0"><head><meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"><title>String Utility Functions</title><meta name="generator" content="DocBook XSL Stylesheets V1.69.0"><link rel="start" href="index.html" title="GLib Reference Manual"><link rel="up" href="glib-utilities.html" title="GLib Utilities"><link rel="prev" href="glib-utilities.html" title="GLib Utilities"><link rel="next" href="glib-Character-Set-Conversion.html" title="Character Set Conversion"><meta name="generator" content="GTK-Doc V1.4 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="chapter" href="glib.html" title="GLib Overview"><link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals"><link rel="chapter" href="glib-core.html" title="GLib Core Application Support"><link rel="chapter" href="glib-utilities.html" title="GLib Utilities"><link rel="chapter" href="glib-data-types.html" title="GLib Data Types"><link rel="chapter" href="tools.html" title="GLib Tools"><link rel="index" href="ix01.html" title="Index"><link rel="index" href="ix02.html" title="Index of deprecated symbols"><link rel="index" href="ix03.html" title="Index of new symbols in 2.2"><link rel="index" href="ix04.html" title="Index of new symbols in 2.4"><link rel="index" href="ix05.html" title="Index of new symbols in 2.6"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="glib-utilities.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="glib-utilities.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">GLib Reference Manual</th><td><a accesskey="n" href="glib-Character-Set-Conversion.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="glib-String-Utility-Functions"></a><div class="titlepage"></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">String Utility Functions</span></h2><p>String Utility Functions &#8212; various string-related functions.</p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">#include &lt;glib.h&gt;#include &lt;glib/gprintf.h&gt;<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strdup">g_strdup</a>                        (const <a href="glib-Basic-Types.html#gchar">gchar</a> *str);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strndup">g_strndup</a>                       (const <a href="glib-Basic-Types.html#gchar">gchar</a> *str,                                             <a href="glib-Basic-Types.html#gsize">gsize</a> n);<a href="glib-Basic-Types.html#gchar">gchar</a>**     <a href="glib-String-Utility-Functions.html#g-strdupv">g_strdupv</a>                       (<a href="glib-Basic-Types.html#gchar">gchar</a> **str_array);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strnfill">g_strnfill</a>                      (<a href="glib-Basic-Types.html#gsize">gsize</a> length,                                             <a href="glib-Basic-Types.html#gchar">gchar</a> fill_char);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-stpcpy">g_stpcpy</a>                        (<a href="glib-Basic-Types.html#gchar">gchar</a> *dest,                                             const char *src);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strstr-len">g_strstr_len</a>                    (const <a href="glib-Basic-Types.html#gchar">gchar</a> *haystack,                                             <a href="glib-Basic-Types.html#gssize">gssize</a> haystack_len,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *needle);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strrstr">g_strrstr</a>                       (const <a href="glib-Basic-Types.html#gchar">gchar</a> *haystack,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *needle);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strrstr-len">g_strrstr_len</a>                   (const <a href="glib-Basic-Types.html#gchar">gchar</a> *haystack,                                             <a href="glib-Basic-Types.html#gssize">gssize</a> haystack_len,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *needle);<a href="glib-Basic-Types.html#gboolean">gboolean</a>    <a href="glib-String-Utility-Functions.html#g-str-has-prefix">g_str_has_prefix</a>                (const <a href="glib-Basic-Types.html#gchar">gchar</a> *str,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *prefix);<a href="glib-Basic-Types.html#gboolean">gboolean</a>    <a href="glib-String-Utility-Functions.html#g-str-has-suffix">g_str_has_suffix</a>                (const <a href="glib-Basic-Types.html#gchar">gchar</a> *str,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *suffix);<a href="glib-Basic-Types.html#gsize">gsize</a>       <a href="glib-String-Utility-Functions.html#g-strlcpy">g_strlcpy</a>                       (<a href="glib-Basic-Types.html#gchar">gchar</a> *dest,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *src,                                             <a href="glib-Basic-Types.html#gsize">gsize</a> dest_size);<a href="glib-Basic-Types.html#gsize">gsize</a>       <a href="glib-String-Utility-Functions.html#g-strlcat">g_strlcat</a>                       (<a href="glib-Basic-Types.html#gchar">gchar</a> *dest,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *src,                                             <a href="glib-Basic-Types.html#gsize">gsize</a> dest_size);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strdup-printf">g_strdup_printf</a>                 (const <a href="glib-Basic-Types.html#gchar">gchar</a> *format,                                             ...);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strdup-vprintf">g_strdup_vprintf</a>                (const <a href="glib-Basic-Types.html#gchar">gchar</a> *format,                                             va_list args);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-printf">g_printf</a>                        (<a href="glib-Basic-Types.html#gchar">gchar</a> const *format,                                             ...);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-vprintf">g_vprintf</a>                       (<a href="glib-Basic-Types.html#gchar">gchar</a> const *format,                                             va_list args);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-fprintf">g_fprintf</a>                       (FILE *file,                                             <a href="glib-Basic-Types.html#gchar">gchar</a> const *format,                                             ...);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-vfprintf">g_vfprintf</a>                      (FILE *file,                                             <a href="glib-Basic-Types.html#gchar">gchar</a> const *format,                                             va_list args);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-sprintf">g_sprintf</a>                       (<a href="glib-Basic-Types.html#gchar">gchar</a> *string,                                             <a href="glib-Basic-Types.html#gchar">gchar</a> const *format,                                             ...);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-vsprintf">g_vsprintf</a>                      (<a href="glib-Basic-Types.html#gchar">gchar</a> *string,                                             <a href="glib-Basic-Types.html#gchar">gchar</a> const *format,                                             va_list args);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-snprintf">g_snprintf</a>                      (<a href="glib-Basic-Types.html#gchar">gchar</a> *string,                                             <a href="glib-Basic-Types.html#gulong">gulong</a> n,                                             <a href="glib-Basic-Types.html#gchar">gchar</a> const *format,                                             ...);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-vsnprintf">g_vsnprintf</a>                     (<a href="glib-Basic-Types.html#gchar">gchar</a> *string,                                             <a href="glib-Basic-Types.html#gulong">gulong</a> n,                                             <a href="glib-Basic-Types.html#gchar">gchar</a> const *format,                                             va_list args);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-vasprintf">g_vasprintf</a>                     (<a href="glib-Basic-Types.html#gchar">gchar</a> **string,                                             <a href="glib-Basic-Types.html#gchar">gchar</a> const *format,                                             va_list args);<a href="glib-Basic-Types.html#gsize">gsize</a>       <a href="glib-String-Utility-Functions.html#g-printf-string-upper-bound">g_printf_string_upper_bound</a>     (const <a href="glib-Basic-Types.html#gchar">gchar</a> *format,                                             va_list args);<a href="glib-Basic-Types.html#gboolean">gboolean</a>    <a href="glib-String-Utility-Functions.html#g-ascii-isalnum">g_ascii_isalnum</a>                 (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Basic-Types.html#gboolean">gboolean</a>    <a href="glib-String-Utility-Functions.html#g-ascii-isalpha">g_ascii_isalpha</a>                 (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Basic-Types.html#gboolean">gboolean</a>    <a href="glib-String-Utility-Functions.html#g-ascii-iscntrl">g_ascii_iscntrl</a>                 (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Basic-Types.html#gboolean">gboolean</a>    <a href="glib-String-Utility-Functions.html#g-ascii-isdigit">g_ascii_isdigit</a>                 (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Basic-Types.html#gboolean">gboolean</a>    <a href="glib-String-Utility-Functions.html#g-ascii-isgraph">g_ascii_isgraph</a>                 (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Basic-Types.html#gboolean">gboolean</a>    <a href="glib-String-Utility-Functions.html#g-ascii-islower">g_ascii_islower</a>                 (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Basic-Types.html#gboolean">gboolean</a>    <a href="glib-String-Utility-Functions.html#g-ascii-isprint">g_ascii_isprint</a>                 (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Basic-Types.html#gboolean">gboolean</a>    <a href="glib-String-Utility-Functions.html#g-ascii-ispunct">g_ascii_ispunct</a>                 (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Basic-Types.html#gboolean">gboolean</a>    <a href="glib-String-Utility-Functions.html#g-ascii-isspace">g_ascii_isspace</a>                 (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Basic-Types.html#gboolean">gboolean</a>    <a href="glib-String-Utility-Functions.html#g-ascii-isupper">g_ascii_isupper</a>                 (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Basic-Types.html#gboolean">gboolean</a>    <a href="glib-String-Utility-Functions.html#g-ascii-isxdigit">g_ascii_isxdigit</a>                (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-ascii-digit-value">g_ascii_digit_value</a>             (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-ascii-xdigit-value">g_ascii_xdigit_value</a>            (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-ascii-strcasecmp">g_ascii_strcasecmp</a>              (const <a href="glib-Basic-Types.html#gchar">gchar</a> *s1,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *s2);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-ascii-strncasecmp">g_ascii_strncasecmp</a>             (const <a href="glib-Basic-Types.html#gchar">gchar</a> *s1,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *s2,                                             <a href="glib-Basic-Types.html#gsize">gsize</a> n);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-ascii-strup">g_ascii_strup</a>                   (const <a href="glib-Basic-Types.html#gchar">gchar</a> *str,                                             <a href="glib-Basic-Types.html#gssize">gssize</a> len);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-ascii-strdown">g_ascii_strdown</a>                 (const <a href="glib-Basic-Types.html#gchar">gchar</a> *str,                                             <a href="glib-Basic-Types.html#gssize">gssize</a> len);<a href="glib-Basic-Types.html#gchar">gchar</a>       <a href="glib-String-Utility-Functions.html#g-ascii-tolower">g_ascii_tolower</a>                 (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Basic-Types.html#gchar">gchar</a>       <a href="glib-String-Utility-Functions.html#g-ascii-toupper">g_ascii_toupper</a>                 (<a href="glib-Basic-Types.html#gchar">gchar</a> c);<a href="glib-Strings.html#GString">GString</a>*    <a href="glib-String-Utility-Functions.html#g-string-ascii-up">g_string_ascii_up</a>               (<a href="glib-Strings.html#GString">GString</a> *string);<a href="glib-Strings.html#GString">GString</a>*    <a href="glib-String-Utility-Functions.html#g-string-ascii-down">g_string_ascii_down</a>             (<a href="glib-Strings.html#GString">GString</a> *string);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strup">g_strup</a>                         (<a href="glib-Basic-Types.html#gchar">gchar</a> *string);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strdown">g_strdown</a>                       (<a href="glib-Basic-Types.html#gchar">gchar</a> *string);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-strcasecmp">g_strcasecmp</a>                    (const <a href="glib-Basic-Types.html#gchar">gchar</a> *s1,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *s2);<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-String-Utility-Functions.html#g-strncasecmp">g_strncasecmp</a>                   (const <a href="glib-Basic-Types.html#gchar">gchar</a> *s1,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *s2,                                             <a href="glib-Basic-Types.html#guint">guint</a> n);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strreverse">g_strreverse</a>                    (<a href="glib-Basic-Types.html#gchar">gchar</a> *string);<a href="glib-Basic-Types.html#guint64">guint64</a>     <a href="glib-String-Utility-Functions.html#g-ascii-strtoull">g_ascii_strtoull</a>                (const <a href="glib-Basic-Types.html#gchar">gchar</a> *nptr,                                             <a href="glib-Basic-Types.html#gchar">gchar</a> **endptr,                                             <a href="glib-Basic-Types.html#guint">guint</a> base);#define     <a href="glib-String-Utility-Functions.html#G-ASCII-DTOSTR-BUF-SIZE:CAPS">G_ASCII_DTOSTR_BUF_SIZE</a><a href="glib-Basic-Types.html#gdouble">gdouble</a>     <a href="glib-String-Utility-Functions.html#g-ascii-strtod">g_ascii_strtod</a>                  (const <a href="glib-Basic-Types.html#gchar">gchar</a> *nptr,                                             <a href="glib-Basic-Types.html#gchar">gchar</a> **endptr);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-ascii-dtostr">g_ascii_dtostr</a>                  (<a href="glib-Basic-Types.html#gchar">gchar</a> *buffer,                                             <a href="glib-Basic-Types.html#gint">gint</a> buf_len,                                             <a href="glib-Basic-Types.html#gdouble">gdouble</a> d);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-ascii-formatd">g_ascii_formatd</a>                 (<a href="glib-Basic-Types.html#gchar">gchar</a> *buffer,                                             <a href="glib-Basic-Types.html#gint">gint</a> buf_len,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *format,                                             <a href="glib-Basic-Types.html#gdouble">gdouble</a> d);<a href="glib-Basic-Types.html#gdouble">gdouble</a>     <a href="glib-String-Utility-Functions.html#g-strtod">g_strtod</a>                        (const <a href="glib-Basic-Types.html#gchar">gchar</a> *nptr,                                             <a href="glib-Basic-Types.html#gchar">gchar</a> **endptr);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strchug">g_strchug</a>                       (<a href="glib-Basic-Types.html#gchar">gchar</a> *string);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strchomp">g_strchomp</a>                      (<a href="glib-Basic-Types.html#gchar">gchar</a> *string);#define     <a href="glib-String-Utility-Functions.html#g-strstrip">g_strstrip</a>                      ( string )<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strdelimit">g_strdelimit</a>                    (<a href="glib-Basic-Types.html#gchar">gchar</a> *string,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *delimiters,                                             <a href="glib-Basic-Types.html#gchar">gchar</a> new_delimiter);#define     <a href="glib-String-Utility-Functions.html#G-STR-DELIMITERS:CAPS">G_STR_DELIMITERS</a><a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strescape">g_strescape</a>                     (const <a href="glib-Basic-Types.html#gchar">gchar</a> *source,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *exceptions);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strcompress">g_strcompress</a>                   (const <a href="glib-Basic-Types.html#gchar">gchar</a> *source);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strcanon">g_strcanon</a>                      (<a href="glib-Basic-Types.html#gchar">gchar</a> *string,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *valid_chars,                                             <a href="glib-Basic-Types.html#gchar">gchar</a> substitutor);<a href="glib-Basic-Types.html#gchar">gchar</a>**     <a href="glib-String-Utility-Functions.html#g-strsplit">g_strsplit</a>                      (const <a href="glib-Basic-Types.html#gchar">gchar</a> *string,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *delimiter,                                             <a href="glib-Basic-Types.html#gint">gint</a> max_tokens);<a href="glib-Basic-Types.html#gchar">gchar</a>**     <a href="glib-String-Utility-Functions.html#g-strsplit-set">g_strsplit_set</a>                  (const <a href="glib-Basic-Types.html#gchar">gchar</a> *string,                                             const <a href="glib-Basic-Types.html#gchar">gchar</a> *delimiters,                                             <a href="glib-Basic-Types.html#gint">gint</a> max_tokens);void        <a href="glib-String-Utility-Functions.html#g-strfreev">g_strfreev</a>                      (<a href="glib-Basic-Types.html#gchar">gchar</a> **str_array);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strconcat">g_strconcat</a>                     (const <a href="glib-Basic-Types.html#gchar">gchar</a> *string1,                                             ...);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strjoin">g_strjoin</a>                       (const <a href="glib-Basic-Types.html#gchar">gchar</a> *separator,                                             ...);<a href="glib-Basic-Types.html#gchar">gchar</a>*      <a href="glib-String-Utility-Functions.html#g-strjoinv">g_strjoinv</a>                      (const <a href="glib-Basic-Types.html#gchar">gchar</a> *separator,                                             <a href="glib-Basic-Types.html#gchar">gchar</a> **str_array);<a href="glib-Basic-Types.html#guint">guint</a>       <a href="glib-String-Utility-Functions.html#g-strv-length">g_strv_length</a>                   (<a href="glib-Basic-Types.html#gchar">gchar</a> **str_array);const <a href="glib-Basic-Types.html#gchar">gchar</a>* <a href="glib-String-Utility-Functions.html#g-strerror">g_strerror</a>                     (<a href="glib-Basic-Types.html#gint">gint</a> errnum);const <a href="glib-Basic-Types.html#gchar">gchar</a>* <a href="glib-String-Utility-Functions.html#g-strsignal">g_strsignal</a>                    (<a href="glib-Basic-Types.html#gint">gint</a> signum);</pre></div><div class="refsect1" lang="en"><a name="id2938726"></a><h2>Description</h2><p>This section describes a number of utility functions for creating,duplicating, and manipulating strings.</p><p>Note that the functions <a href="glib-String-Utility-Functions.html#g-printf"><code class="function">g_printf()</code></a>, <a href="glib-String-Utility-Functions.html#g-fprintf"><code class="function">g_fprintf()</code></a>, <a href="glib-String-Utility-Functions.html#g-sprintf"><code class="function">g_sprintf()</code></a>, <a href="glib-String-Utility-Functions.html#g-snprintf"><code class="function">g_snprintf()</code></a>,<a href="glib-String-Utility-Functions.html#g-vprintf"><code class="function">g_vprintf()</code></a>, <a href="glib-String-Utility-Functions.html#g-vfprintf"><code class="function">g_vfprintf()</code></a>, <a href="glib-String-Utility-Functions.html#g-vsprintf"><code class="function">g_vsprintf()</code></a> and <a href="glib-String-Utility-Functions.html#g-vsnprintf"><code class="function">g_vsnprintf()</code></a> are declared in the header <code class="filename">gprintf.h</code> which is <span class="emphasis"><em>not</em></span>included in <code class="filename">glib.h</code> (otherwise using <code class="filename">glib.h</code> would drag in <code class="filename">stdio.h</code>), soyou'll have to explicitly include <code class="literal">&lt;glib/gprintf.h&gt;</code> in order to use the GLib <code class="function">printf()</code> functions. </p><p><a name="string-precision"></a>While you may use the <code class="function">printf()</code> functions to format UTF-8 strings, notice thatthe precision of a <code class="literal">%Ns</code> parameter is interpreted as thenumber of <span class="emphasis"><em>bytes</em></span>, not <span class="emphasis"><em>characters</em></span> to print.On top of that, the GNU libc implementation of the <code class="function">printf()</code> functions has the "feature"that it checks that the string given for the <code class="literal">%Ns</code> parameterconsists of a whole number of characters in the current encoding. So, unless youare sure you are always going to be in an UTF-8 locale or your know your text is restricted to ASCII, avoid using <code class="literal">%Ns</code>.If your intention is to format strings for a certain number of columns, then <code class="literal">%Ns</code> is not a correct solution anyway, since it fails to take wide characters (see <a href="glib-Unicode-Manipulation.html#g-unichar-iswide"><code class="function">g_unichar_iswide()</code></a>) into account.</p></div><div class="refsect1" lang="en"><a name="id2938949"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2938955"></a><h3><a name="g-strdup"></a>g_strdup ()</h3><a class="indexterm" name="id2938965"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gchar">gchar</a>*      g_strdup                        (const <a href="glib-Basic-Types.html#gchar">gchar</a> *str);</pre><p>Duplicates a string.If <em class="parameter"><code>str</code></em> is <code class="literal">NULL</code> it returns <code class="literal">NULL</code>.The returned string should be freed when no longer needed.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><em class="parameter"><code>str</code></em>&#160;:</span></td><td>the string to duplicate.</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td><td>a newly-allocated copy of <em class="parameter"><code>str</code></em>.</td></tr></tbody>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?