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 — 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 <glib.h>#include <glib/gprintf.h><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"><glib/gprintf.h></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> :</span></td><td>the string to duplicate.</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</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 + -
显示快捷键?