Files
hustoj/web/cppreference-zh/chmhelp/c-string-wide-wcstok.html
2025-08-01 12:57:54 +08:00

229 lines
17 KiB
HTML

<!DOCTYPE html>
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>wcstok, wcstok_s</title>
<link rel="stylesheet" href="ext.css" />
<link rel="stylesheet" href="site_modules.css" />
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-c_string_wide_wcstok skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">wcstok, wcstok_s</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="c.html">c</a>&lrm; | <a href="c-string.html">string</a>&lrm; | <a href="c-string-wide.html">wide</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<table class="t-dcl-begin">
<tbody>
<tr class="t-dsc-header">
<td>
<div>&#23450;&#20041;&#20110;&#22836;&#25991;&#20214; <code>&lt;wchar.h&gt;</code></div>
</td>
<td></td>
<td></td>
</tr>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num">
<tr class="t-dcl-rev-aux">
<td></td>
<td rowspan="142">(1)</td>
<td></td>
</tr>
<tr class="t-dcl t-since-c95 t-until-c99">
<td>
<div><span class="mw-geshi c source-c"><span class="kw4">wchar_t</span><span class="sy2">*</span> wcstok<span class="br0">(</span> <span class="kw4">wchar_t</span><span class="sy2">*</span> str, <span class="kw4">const</span> <span class="kw4">wchar_t</span><span class="sy2">*</span> delim, <span class="kw4">wchar_t</span> <span class="sy2">**</span>ptr <span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td><span class="t-mark-rev t-since-c95">(C95 &#36215;)</span><br />
<span class="t-mark-rev t-until-c99">(C99 &#21069;)</span></td>
</tr>
<tr class="t-dcl t-since-c99">
<td>
<div><span class="mw-geshi c source-c"><span class="kw4">wchar_t</span> <span class="sy2">*</span>wcstok<span class="br0">(</span><span class="kw4">wchar_t</span> <span class="sy2">*</span> <span class="kw4">restrict</span> str, <span class="kw4">const</span> <span class="kw4">wchar_t</span> <span class="sy2">*</span> <span class="kw4">restrict</span> delim,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">wchar_t</span> <span class="sy2">**</span><span class="kw4">restrict</span> ptr<span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></td>
</tr>
</tbody>
<tbody>
<tr class="t-dcl t-since-c11">
<td>
<div><span class="mw-geshi c source-c"><span class="kw4">wchar_t</span> <span class="sy2">*</span>wcstok_s<span class="br0">(</span> <span class="kw4">wchar_t</span> <span class="sy2">*</span><span class="kw4">restrict</span> str, rsize_t <span class="sy2">*</span><span class="kw4">restrict</span> strmax,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw4">const</span> <span class="kw4">wchar_t</span> <span class="sy2">*</span><span class="kw4">restrict</span> delim, <span class="kw4">wchar_t</span> <span class="sy2">**</span><span class="kw4">restrict</span> ptr<span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td>(2)</td>
<td><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></td>
</tr>
<tr class="t-dcl-sep">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<div class="t-li1"><span class="t-li">1)</span> &#23547;&#25214; <code>str</code> &#25152;&#25351;&#21521;&#30340;&#31354;&#32456;&#27490;&#23485;&#23383;&#31526;&#20018;&#20013;&#30340;&#19979;&#20010;&#35760;&#21495;&#12290;&#20197; <code>delim</code> &#25152;&#25351;&#21521;&#30340;&#31354;&#32456;&#27490;&#23485;&#23383;&#31526;&#20018;&#37492;&#21035;&#20998;&#38548;&#31526;&#12290;</div>
<div class="t-li1"><span class="t-li"></span> &#27492;&#20989;&#25968;&#34987;&#35774;&#35745;&#20026;&#35843;&#29992;&#22810;&#27425;&#20197;&#20174;&#21516;&#19968;&#23383;&#31526;&#20018;&#33719;&#24471;&#30456;&#32487;&#30340;&#35760;&#21495;&#12290;</div>
<dl>
<dd>
<ul>
<li>&#33509; <span class="t-c"><span class="mw-geshi c source-c">str <span class="sy3">!</span><span class="sy1">=</span> <a href="c-types-NULL.html"><span class="kw103">NULL</span></a></span></span> &#65292;&#21017;&#35843;&#29992;&#34987;&#24403;&#20570; <code>wcstok</code> &#39318;&#27425;&#23545;&#27492;&#20855;&#20307;&#23485;&#23383;&#31526;&#30340;&#35843;&#29992;&#12290;&#20989;&#25968;&#25628;&#32034;&#39318;&#20010;<i>&#19981;</i>&#21547;&#20110; <code>delim</code> &#30340;&#23383;&#31526;&#12290;</li>
</ul>
<dl>
<dd>
<ul>
<li>&#33509;&#25214;&#19981;&#21040;&#36825;&#31181;&#23485;&#23383;&#31526;&#65292;&#21017; <code>str</code> &#20013;&#23436;&#20840;&#26080;&#35760;&#21495;&#65292;&#32780;&#20989;&#25968;&#36820;&#22238;&#31354;&#25351;&#38024;&#12290;</li>
<li>&#33509;&#25214;&#21040;&#36825;&#31181;&#23485;&#23383;&#31526;&#65292;&#21017;&#23427;&#26159;<i>&#35760;&#21495;&#36215;&#22987;</i>&#12290;&#28982;&#21518;&#20989;&#25968;&#20174;&#35813;&#28857;&#25628;&#32034;&#39318;&#20010;<i>&#21547;&#20110;</i> <code>delim</code> &#30340;&#23485;&#23383;&#31526;&#12290;</li>
</ul>
<dl>
<dd>
<ul>
<li>&#33509;&#25214;&#19981;&#21040;&#36825;&#31181;&#23485;&#23383;&#31526;&#65292;&#21017; <code>str</code> &#21482;&#26377;&#19968;&#20010;&#35760;&#21495;&#65292;&#32780;&#23545; <code>wcstok</code> &#30340;&#23558;&#26469;&#35843;&#29992;&#23558;&#36820;&#22238;&#31354;&#25351;&#38024;</li>
<li>&#33509;&#25214;&#21040;&#36825;&#31181;&#23485;&#23383;&#31526;&#65292;&#21017;&#20197;&#31354;&#23485;&#23383;&#31526; <span class="t-c"><span class="mw-geshi c source-c">L<span class="st0">&#39;<span class="es5">\0</span>&#39;</span></span></span> <i>&#26367;&#25442;</i>&#23427;&#65292;&#24182;&#23384;&#20648;&#20998;&#26512;&#29366;&#24577;&#65288;&#20856;&#22411;&#22320;&#20026;&#25351;&#21521;&#21518;&#19968;&#23485;&#23383;&#31526;&#30340;&#25351;&#38024;&#65289;&#20110;&#29992;&#25143;&#25552;&#20379;&#20301;&#32622; <span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">*</span>ptr</span></span> &#12290;</li>
</ul>
</dd>
</dl>
<ul>
<li>&#28982;&#21518;&#20989;&#25968;&#36820;&#22238;&#25351;&#21521;&#35760;&#21495;&#36215;&#22987;&#30340;&#25351;&#38024;</li>
</ul>
</dd>
</dl>
<ul>
<li>&#33509; <span class="t-c"><span class="mw-geshi c source-c">str <span class="sy1">==</span> <a href="c-types-NULL.html"><span class="kw103">NULL</span></a></span></span> &#65292;&#21017;&#35843;&#29992;&#34987;&#24403;&#20316;&#23545; <code>wcstok</code> &#30340;&#21518;&#32487;&#35843;&#29992;&#65306;&#20989;&#25968;&#20174;&#24102;&#21516;&#19968; <span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">*</span>ptr</span></span> &#30340;&#20808;&#21069;&#35843;&#29992;&#25152;&#30041;&#19979;&#30340;&#20301;&#32622;&#24320;&#22987;&#25345;&#32493;&#12290;&#34892;&#20026;&#19982;&#22914;&#21516;&#23558;&#25351;&#21521;&#21518;&#38543;&#19978;&#27425;&#26816;&#27979;&#30340;&#35760;&#21495;&#30340;&#23485;&#23383;&#31526;&#30340;&#25351;&#38024;&#20316;&#20026; <span class="t-c"><span class="mw-geshi c source-c">str</span></span> &#20256;&#36882;&#30456;&#21516;&#12290;</li>
</ul>
</dd>
</dl>
<div class="t-li1"><span class="t-li">2)</span> &#21516; <span class="t-v">(1)</span> &#38500;&#20102;&#22312;&#27599;&#27493;&#26102;&#65292;&#20889;&#20837; <code>str</code> &#20013;&#30041;&#24453;&#26597;&#30475;&#30340;&#23383;&#31526;&#25968;&#21040; <span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">*</span>strmax</span></span> &#12290; &#37325;&#22797;&#30340;&#35843;&#29992;&#65288;&#20197;&#31354; <code>str</code> &#65289;&#24517;&#39035;&#20256;&#36882;&#20808;&#21069;&#30340;&#35843;&#29992;&#29992;&#20197;&#23384;&#20648;&#20540;&#30340; <code>strmax</code> &#21644; <code>ptr</code> &#12290;&#24182;&#19988;&#22312;&#36816;&#34892;&#26102;&#26816;&#27979;&#19979;&#21015;&#38169;&#35823;&#65292;&#24182;&#35843;&#29992;&#24403;&#21069;&#23433;&#35013;&#30340;<a href="c-error-set_constraint_handler_s.html">&#21046;&#32422;&#22788;&#29702;</a>&#20989;&#25968;&#65306;
<dl>
<dd>
<ul>
<li><code>strmax</code> &#12289; <code>delim</code> &#25110; <code>ptr</code> &#20026;&#31354;&#25351;&#38024;</li>
<li>&#22312;&#38750;&#39318;&#27425;&#35843;&#29992;&#65288;&#20197;&#31354; <code>str</code> &#65289;&#26102;&#65292; <code>*ptr</code> &#20026;&#31354;&#25351;&#38024;</li>
<li>&#39318;&#27425;&#35843;&#29992;&#26102;&#65292; <span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">*</span>strmax</span></span> &#20026;&#38646;&#25110;&#22823;&#20110; <span class="t-c"><span class="mw-geshi c source-c">RSIZE_MAX<span class="sy2">/</span><span class="kw4">sizeof</span><span class="br0">(</span><span class="kw4">wchar_t</span><span class="br0">)</span></span></span></li>
<li>&#23545;&#35760;&#21495;&#30340;&#25628;&#32034;&#25269;&#36798;&#28304;&#23383;&#31526;&#20018;&#32467;&#23614;&#65288;&#20197; <span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">*</span>strmax</span></span> &#30340;&#21021;&#20540;&#27979;&#37327;&#65289;&#65292;&#32780;&#26410;&#36935;&#21040;&#31354;&#32456;&#27490;&#31526;</li>
</ul>
</dd>
<dd></dd>
<dd>&#21516;&#25152;&#26377;&#36793;&#30028;&#26816;&#26597;&#20989;&#25968;&#65292; <code>wcstok_s</code> &#20165;&#33509;&#23454;&#29616;&#23450;&#20041;&#20102; <span class="t-c"><span class="mw-geshi c source-c">__STDC_LIB_EXT1__</span></span> &#65292;&#19988;&#29992;&#25143;&#22312;&#21253;&#21547; <code>wchar.h</code> &#21069;&#23450;&#20041; <span class="t-c"><span class="mw-geshi c source-c">__STDC_WANT_LIB_EXT1__</span></span> &#20026;&#25972;&#25968;&#24120;&#37327; <span class="t-c"><span class="mw-geshi c source-c"><span class="nu0">1</span></span></span> &#25165;&#20445;&#35777;&#21487;&#29992;&#12290;</dd>
</dl>
</div>
<h3><span class="mw-headline" id=".E5.8F.82.E6.95.B0">&#21442;&#25968;</span></h3>
<table class="t-par-begin">
<tr class="t-par">
<td>str</td>
<td>-</td>
<td>&#25351;&#21521;&#35201;&#35760;&#21495;&#21270;&#30340;&#31354;&#32456;&#27490;&#23485;&#23383;&#31526;&#20018;&#30340;&#25351;&#38024;</td>
</tr>
<tr class="t-par">
<td>delim</td>
<td>-</td>
<td>&#25351;&#21521;&#26631;&#35782;&#20998;&#38548;&#31526;&#30340;&#31354;&#32456;&#27490;&#23485;&#23383;&#31526;&#20018;&#30340;&#25351;&#38024;</td>
</tr>
<tr class="t-par">
<td>ptr</td>
<td>-</td>
<td>&#25351;&#21521; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">wchar_t</span><span class="sy2">*</span></span></span> &#31867;&#22411;&#23545;&#35937;&#30340;&#25351;&#38024;&#65292; <code>wcstok</code> &#21644; <code>wcstok_s</code> &#20197;&#20043;&#23384;&#20648;&#20998;&#26512;&#22120;&#30340;&#20869;&#37096;&#29366;&#24577;</td>
</tr>
<tr class="t-par">
<td>strmax</td>
<td>-</td>
<td>&#25351;&#21521;&#26368;&#21021;&#20445;&#26377; <code>str</code> &#22823;&#23567;&#30340;&#23545;&#35937;&#65306; wcstok_s &#23384;&#20648;&#30041;&#24453;&#26816;&#39564;&#30340;&#23383;&#31526;&#25968;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E8.BF.94.E5.9B.9E.E5.80.BC">&#36820;&#22238;&#20540;</span></h3>
<p>&#36820;&#22238;&#25351;&#21521;&#19979;&#20010;&#35760;&#21495;&#36215;&#22987;&#30340;&#25351;&#38024;&#65292;&#25110;&#33509;&#26080;&#26356;&#22810;&#35760;&#21495;&#21017;&#20026;&#31354;&#25351;&#38024;&#12290;</p>
<h3><span class="mw-headline" id=".E6.B3.A8.E6.84.8F">&#27880;&#24847;</span></h3>
<p>&#27492;&#20989;&#25968;&#26159;&#30772;&#22351;&#24615;&#30340;&#65306;&#23427;&#20889;&#20837; <span class="t-c"><span class="mw-geshi c source-c">L<span class="st0">&#39;<span class="es5">\0</span>&#39;</span></span></span> &#23383;&#31526;&#20110;&#23383;&#31526;&#20018; <code>str</code> &#30340;&#20803;&#32032;&#12290;&#29305;&#21035;&#26159;&#65292;&#23485;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#19981;&#33021;&#29992;&#20316; <code>wcstok</code> &#30340;&#39318;&#21442;&#25968;&#12290;</p>
<p>&#19981;&#21516;&#20110; <span class="t-lc"><a href="c-string-byte-strtok.html">strtok</a></span> &#65292; <code>wcstok</code> &#19981;&#26356;&#26032;&#38745;&#24577;&#23384;&#20648;&#65306;&#23427;&#23384;&#20648;&#20998;&#26512;&#29366;&#24577;&#20110;&#29992;&#25143;&#25552;&#20379;&#30340;&#20301;&#32622;&#12290;</p>
<p>&#19981;&#21516;&#20110;&#22823;&#22810;&#25968;&#20854;&#20182;&#35760;&#21495;&#21270;&#22120;&#65292; <code>wcstok</code> &#20013;&#30340;&#20998;&#38548;&#31526;&#33021;&#23545;&#20110;&#21518;&#32487;&#35760;&#21495;&#19981;&#21516;&#65292;&#32780;&#19988;&#29978;&#33267;&#33021;&#20381;&#36182;&#20110;&#20808;&#21069;&#35760;&#21495;&#30340;&#20869;&#23481;&#12290;</p>
<h3><span class="mw-headline" id=".E7.A4.BA.E4.BE.8B">&#31034;&#20363;</span></h3>
<div class="t-example">
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="co2">#include &lt;wchar.h&gt;</span>
<span class="co2">#include &lt;stdio.h&gt;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw4">wchar_t</span> input<span class="br0">[</span><span class="br0">]</span> <span class="sy1">=</span> L<span class="st0">&quot;A bird came down the walk&quot;</span><span class="sy4">;</span>
<a href="c-io-fprintf.html"><span class="kw850">printf</span></a><span class="br0">(</span><span class="st0">&quot;Parsing the input string &#39;%ls&#39;<span class="es1">\n</span>&quot;</span>, input<span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">wchar_t</span> <span class="sy2">*</span>buffer<span class="sy4">;</span>
<span class="kw4">wchar_t</span> <span class="sy2">*</span>token <span class="sy1">=</span> wcstok<span class="br0">(</span>input, L<span class="st0">&quot; &quot;</span>, <span class="sy3">&amp;</span>buffer<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">while</span><span class="br0">(</span>token<span class="br0">)</span> <span class="br0">{</span>
<a href="c-io-fprintf.html"><span class="kw850">printf</span></a><span class="br0">(</span><span class="st0">&quot;%ls<span class="es1">\n</span>&quot;</span>, token<span class="br0">)</span><span class="sy4">;</span>
token <span class="sy1">=</span> wcstok<span class="br0">(</span><a href="c-types-NULL.html"><span class="kw103">NULL</span></a>, L<span class="st0">&quot; &quot;</span>, <span class="sy3">&amp;</span>buffer<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<a href="c-io-fprintf.html"><span class="kw850">printf</span></a><span class="br0">(</span><span class="st0">&quot;Contents of the input string now: &#39;&quot;</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">for</span><span class="br0">(</span><a href="c-types-size_t.html"><span class="kw100">size_t</span></a> n <span class="sy1">=</span> <span class="nu0">0</span><span class="sy4">;</span> n <span class="sy1">&lt;</span> <span class="kw4">sizeof</span> input <span class="sy2">/</span> <span class="kw4">sizeof</span> <span class="sy2">*</span>input<span class="sy4">;</span> <span class="sy2">++</span>n<span class="br0">)</span>
input<span class="br0">[</span>n<span class="br0">]</span> <span class="sy4">?</span> <a href="c-io-fprintf.html"><span class="kw850">printf</span></a><span class="br0">(</span><span class="st0">&quot;%lc&quot;</span>, input<span class="br0">[</span>n<span class="br0">]</span><span class="br0">)</span> <span class="sy4">:</span> <a href="c-io-fprintf.html"><span class="kw850">printf</span></a><span class="br0">(</span><span class="st0">&quot;<span class="es1">\\</span>0&quot;</span><span class="br0">)</span><span class="sy4">;</span>
<a href="c-io-puts.html"><span class="kw835">puts</span></a><span class="br0">(</span><span class="st0">&quot;&#39;&quot;</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">Parsing the input string &#39;A bird came down the walk&#39;
A
bird
came
down
the
walk
Contents of the input string now: &#39;A\0bird\0came\0down\0the\0walk\0&#39;</pre></div>
</div>
</div>
<h3><span class="mw-headline" id=".E5.BC.95.E7.94.A8">&#24341;&#29992;</span></h3>
<div class="t-ref-std-11">
<ul>
<li>C11 &#26631;&#20934;&#65288;ISO/IEC 9899:2011&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>7.29.4.5.7 The wcstok function (p: 437-438)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>K.3.9.2.3.1 The wcstok_s function (p: 645-646)</li>
</ul>
</dd>
</dl>
<div class="t-ref-std-c99">
<ul>
<li>C99 &#26631;&#20934;&#65288;ISO/IEC 9899:1999&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>7.24.4.5.7 The wcstok function (p: 383-384)</li>
</ul>
</dd>
</dl>
</div>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="c-string-byte-strtok.html"><span class="t-lines"><span>strtok</span><span>strtok_s</span></span></a></div>
<div><span class="t-lines"><span></span><span><span class="t-mark-rev t-since-c11">(C11)</span></span></span></div>
</div>
</td>
<td>&#26597;&#25214;&#23383;&#33410;&#23383;&#31526;&#20018;&#20013;&#30340;&#19979;&#19968;&#20010;&#35760;&#21495;<br />
<span class="t-mark">(&#20989;&#25968;)</span></td>
</tr>
</table>
</div>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>