<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-menu-disabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-os vector-sticky-header-enabled skin-thumbsize-clientpref-standard" lang="zh" dir="ltr"><head>
    <meta charset="UTF-8">
    <title>String.h</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="icon" type="image/png" href="./_res_/favicon.png">
    <link rel="canonical" href="https://zh.wikipedia.org/wiki/String.h"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
    <meta name="ResourceLoaderDynamicStyles" content="">
    <link href="./_mw_/ext.gadget.large-font.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/ext.gadget.text-spacing.css" rel="stylesheet" type="text/css">
    <link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
    <link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
    <link rel="stylesheet" type="text/css" href="./_res_/footer.css">
    <link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
  </head>
  <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-String_h rootpage-String_h skin-vector-2022 action-view">
    <div class="mw-page-container">
      <div class="mw-page-container-inner">
        <div class="mw-content-container">
          <main id="content" class="mw-body">
            <header class="mw-body-header vector-page-titlebar">
              <h1 id="firstHeading" class="firstHeading mw-first-heading">string.h</h1>
            </header>
            <a id="top"></a>
            <div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
              <div id="contentSub">
                <div id="mw-content-subtitle"></div>
              </div>
              <div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="zh" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="zh" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r88027378">
/* start https://zh.wikipedia.org/ */


.mw-parser-output .mbox-text,.mw-parser-output .mbox-text{border:none;padding:0.25em 0.9em;width:100%}.mw-parser-output .mbox-image{border:none;padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .mbox-imageright{border:none;padding:2px 0.9em 2px 0;text-align:center}.mw-parser-output .mbox-empty-cell{border:none;padding:0;width:1px}


/* end   https://zh.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r83732972">
/* start https://zh.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .ambox{border-left-color:#36c!important}html.skin-theme-clientpref-night .mw-parser-output .ambox-speedy,html.skin-theme-clientpref-night .mw-parser-output .ambox-delete{border-left-color:#b32424!important}html.skin-theme-clientpref-night .mw-parser-output .ambox-speedy{background-color:#300!important}html.skin-theme-clientpref-night .mw-parser-output .ambox-content{border-left-color:#f28500!important}html.skin-theme-clientpref-night .mw-parser-output .ambox-style{border-left-color:#fc3!important}html.skin-theme-clientpref-night .mw-parser-output .ambox-move{border-left-color:#9932cc!important}html.skin-theme-clientpref-night .mw-parser-output .ambox-protection{border-left-color:#a2a9b1!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .ambox{border-left-color:#36c!important}html.skin-theme-clientpref-os .mw-parser-output .ambox-speedy,html.skin-theme-clientpref-os .mw-parser-output .ambox-delete{border-left-color:#b32424!important}html.skin-theme-clientpref-os .mw-parser-output .ambox-speedy{background-color:#300!important}html.skin-theme-clientpref-os .mw-parser-output .ambox-content{border-left-color:#f28500!important}html.skin-theme-clientpref-os .mw-parser-output .ambox-style{border-left-color:#fc3!important}html.skin-theme-clientpref-os .mw-parser-output .ambox-move{border-left-color:#9932cc!important}html.skin-theme-clientpref-os .mw-parser-output .ambox-protection{border-left-color:#a2a9b1!important}}


/* end   https://zh.wikipedia.org/ */
</style>

<div id="noteTA-f3e2a619" class="noteTA"><div class="noteTA-group"><div data-noteta-group-source="module" data-noteta-group="IT"></div></div></div>
<style data-mw-deduplicate="TemplateStyles:r84265675">
/* start https://zh.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:" :"}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist-pipe dd::after,.mw-parser-output .hlist-pipe li::after{content:" | ";font-weight:normal}.mw-parser-output .hlist-hyphen dd::after,.mw-parser-output .hlist-hyphen li::after{content:" - ";font-weight:normal}.mw-parser-output .hlist-comma dd::after,.mw-parser-output .hlist-comma li::after{content:"、";font-weight:normal}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:"（"counter(listitem)"\a0 "}.mw-parser-output ul.cslist,.mw-parser-output ul.sslist{margin:0;padding:0;display:inline-block;list-style:none}.mw-parser-output .cslist li,.mw-parser-output .sslist li{margin:0;display:inline-block}.mw-parser-output .cslist li::after{content:"，"}.mw-parser-output .sslist li::after{content:"；"}.mw-parser-output .cslist li:last-child::after,.mw-parser-output .sslist li:last-child::after{content:none}


/* end   https://zh.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r84913072">
/* start https://zh.wikipedia.org/ */


.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:100%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-subgroup,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-pretitle,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-heading,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-above,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-below{background:inherit!important;color:inherit!important;border-color:#54595d!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar a:not(.new):not(.mw-selflink):link{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-subgroup,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-pretitle,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-heading,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-above,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-below{background:inherit!important;color:inherit!important;border-color:#54595d!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar a:not(.new):not(.mw-selflink):link{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}


/* end   https://zh.wikipedia.org/ */
</style><table class="sidebar nomobile nowraplinks"><tbody><tr><th class="sidebar-title"><a href="C%E6%A8%99%E6%BA%96%E5%87%BD%E5%BC%8F%E5%BA%AB" title="C標準函式庫">C标准函数库</a></th></tr><tr><th class="sidebar-heading">
一般</th></tr><tr><td class="sidebar-content" style="text-align: left">
<ul><li><a href="Stdlib.h#数据类型" title="Stdlib.h">数据类型</a></li>
<li><a href="Ctype.h" title="Ctype.h">字符类型</a></li>
<li><a class="mw-selflink selflink">字符串</a></li>
<li><a href="Math.h" title="Math.h">数学</a></li>
<li><a href="Stdio.h" title="Stdio.h">文件输入/输出</a></li>
<li><a href="Time.h" title="Time.h">日期/时间</a></li>
<li><a href="Locale.h" title="Locale.h">本地化</a></li>
<li><a href="Stdlib.h#函数" title="Stdlib.h">内存分配</a></li>
<li><a href="Stdlib.h#函数" title="Stdlib.h">过程控制</a></li>
<li><a href="Signal.h" title="Signal.h">信号</a></li>
<li><a href="C%E6%9B%BF%E4%BB%A3%E6%A0%87%E8%AE%B0" title="C替代标记">替代标记</a></li></ul></td>
</tr><tr><th class="sidebar-heading">
杂项</th></tr><tr><td class="sidebar-content" style="text-align: left">
<ul><li><code>&lt;<a href="Assert.h" title="Assert.h">assert.h</a>&gt;</code></li>
<li><code>&lt;<a href="Errno.h" title="Errno.h">errno.h</a>&gt;</code></li>
<li><code>&lt;<a href="Setjmp.h" title="Setjmp.h">setjmp.h</a>&gt;</code></li>
<li><code>&lt;<a href="Stdarg.h" title="Stdarg.h">stdarg.h</a>&gt;</code></li></ul></td>
</tr><tr><td class="sidebar-navbar" style="line-height:1.6"><style data-mw-deduplicate="TemplateStyles:r84244141">
/* start https://zh.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:110%;margin:0 8em}.mw-parser-output .navbar-ct-mini{font-size:110%;margin:0 5em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end   https://zh.wikipedia.org/ */
</style></td></tr></tbody></table> 
<p>
<code><b>string.h</b></code>是<a href="C%E6%A0%87%E5%87%86%E5%BA%93" class="mw-redirect" title="C标准库">C标准库</a>的一個<a href="%E5%A4%B4%E6%96%87%E4%BB%B6" title="头文件">头文件</a>，其中包含了<a href="%E5%AE%8F" class="mw-redirect" title="宏">宏</a>（巨集）定义、常量以及函数和类型的声明，涉及的内容除了<a href="%E5%AD%97%E7%AC%A6%E4%B8%B2" title="字符串">字符串</a>处理之外，还包括大量的内存处理函数；因此，<code>string.h</code>这个命名是不恰当的。
</p><p>在<code>string.h</code>中定义的函数十分常用，作为<a href="C%E6%A0%87%E5%87%86%E5%BA%93" class="mw-redirect" title="C标准库">C标准库</a>的一部分，它们被强制要求可以在任何支持C语言的平台上运行。但是，部分函数存在一些<a href="%E6%BC%8F%E6%B4%9E" title="漏洞">安全隐患</a>，例如<a href="%E7%BC%93%E5%AD%98%E6%BA%A2%E5%87%BA" class="mw-redirect" title="缓存溢出">缓存溢出</a>等，导致程序员宁愿使用一些更安全的函数而放弃一定的可移植性。同时，这些字符串函数只能处理<a href="ASCII" title="ASCII">ASCII</a>字符集或兼容ASCII的字符集，如<a href="ISO-8859-1" class="mw-redirect" title="ISO-8859-1">ISO-8859-1</a>；在处理存在多字节字符的字符集，如<a href="UTF-8" title="UTF-8">UTF-8</a>时，会产生一个警告，指出对字符串“长度”的计算是以字节而不是以<a href="Unicode" class="mw-redirect" title="Unicode">Unicode</a>字符为单位。非ASCII兼容字符集的字符串处理函数一般位于<code><a href="Wchar.h" title="Wchar.h">wchar.h</a></code>中。
</p>

<div class="mw-heading mw-heading2"><h2 id="常量和类型"><span id=".E5.B8.B8.E9.87.8F.E5.92.8C.E7.B1.BB.E5.9E.8B"></span>常量和类型</h2></div>
<table class="wikitable">

<tbody><tr>
<th>名称</th>
<th>说明
</th></tr>
<tr>
<td><code>NULL</code></td>
<td>表示<a href="%E7%A9%BA%E6%8C%87%E9%92%88" class="mw-redirect" title="空指针">空指针</a>常量的宏，即表示一个<b>不</b>指向任何有效内存单元地址的指针常量。
</td></tr>
<tr>
<td><code>size_t</code></td>
<td>无符号<a href="%E6%95%B4%E5%9E%8B" class="mw-disambig" title="整型">整型</a>，被用于<code><a href="Sizeof" title="Sizeof">sizeof</a></code>运算符的返回值类型。
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="函数"><span id=".E5.87.BD.E6.95.B0"></span>函数</h2></div>
<table class="wikitable">

<tbody><tr>
<th>名称</th>
<th>说明
</th></tr>
<tr>
<td><code>void    *<a href="Memcpy" class="mw-redirect" title="Memcpy">memcpy</a>(void *dest, const void *src, size_t n);</code>
</td>
<td>将n字节长的内容从一个内存地址复制到另一个地址；如果两个地址存在重叠，则最终行为未定义
</td></tr>
<tr>
<td><code>void    *memmove(void *dest, const void *src, size_t n);</code>
</td>
<td>将n字节长的内容从一个内存地址复制到另一个地址；与<code>memcpy</code>不同的是它可以正确作用于两个存在重叠的地址
</td></tr>
<tr>
<td><code>void    *memchr(const void *s, char c, size_t n);</code>
</td>
<td>在从s开始的n个字节内查找c第一次出现的地址并返回，若未找到则返回NULL
</td></tr>
<tr>
<td><code>int      memcmp(const void *s1, const void *s2, size_t n);</code>
</td>
<td>对从两个内存地址开始的n个字符进行比较
</td></tr>
<tr>
<td><code>void    *memset(void *, int, size_t);</code>
</td>
<td>用某种字节内容覆写一段内存空间
</td></tr>
<tr>
<td><code>char    *strcat(char *dest, const char *src);</code>
</td>
<td>在字符串dest之后连接上src
</td></tr>
<tr>
<td><code>char    *strncat(char *dest, const char *src, size_t n);</code>
</td>
<td>从src截取n个字符连接在字符串dest之后，返回dest字符串
</td></tr>
<tr>
<td><code>char    *strchr(const char* str, int ch);</code>
</td>
<td>从字符串str头开始查找字符ch首次出现的位置
</td></tr>
<tr>
<td><code>char    *strrchr(const char* str,int ch);</code>
</td>
<td>从字符串str尾开始查找字符ch首次出现的位置
</td></tr>
<tr>
<td><code>int      <a href="Strcmp" class="mw-redirect" title="Strcmp">strcmp</a>(const char *, const char *);</code>
</td>
<td>基于字典顺序比较两个字符串
</td></tr>
<tr>
<td><code>int      strncmp(const char *, const char *, size_t n);</code>
</td>
<td>基于字典顺序比较两个字符串，最多比较n个字节
</td></tr>
<tr>
<td><code>int      strcoll(const char *, const char *);</code>
</td>
<td>基于当前<a href="%E5%8C%BA%E5%9F%9F%E8%AE%BE%E7%BD%AE" title="区域设置">区域设置</a>的<span class="ilh-all" data-orig-title="字符顺序" data-lang-code="en" data-lang-name="英语" data-foreign-title="collating order"><span class="ilh-page">字符顺序</span></span>比较两个字符串
</td></tr>
<tr>
<td><code>char    *<a href="Strcpy" title="Strcpy">strcpy</a>(char* str1, const char* str2);</code>
</td>
<td>将str2拷贝给str1
</td></tr>
<tr>
<td><code>char    *strncpy(char* str1, const char* str2, size_t n);</code>
</td>
<td>截取str2的n个字符拷贝给str1
</td></tr>
<tr>
<td><code>char    *strerror(int);</code>
</td>
<td>返回错误码对应的解释字符串，参见<a href="Errno.h" title="Errno.h">errno.h</a>（非线程安全函数）
</td></tr>
<tr>
<td><code>size_t   strlen(const char *);</code>
</td>
<td>返回一个字符串的长度
</td></tr>
<tr>
<td><code>size_t   strspn(const char *s, const char *strCharSet);</code>
</td>
<td>从字符串s的起始处开始，寻找第一个<b>不</b>出现在strCharSet中的字符，返回其位置索引值。换句话说，返回从字符串s的起始位置的完全由strCharSet中的字符构成的子串的最大长度。strspn为string span的缩写。不支持多字节字符集。
</td></tr>
<tr>
<td><code>size_t   strcspn(const char *s, const char *strCharSet);</code>
</td>
<td>从字符串s的起始处开始，寻找第一个出现在strCharSet中的字符，返回其位置索引值。换句话说，返回从字符串s的起始位置的完全由不属于strCharSet中的字符构成的子串的最大长度。strcspn为string complement span的缩写。不支持多字节字符集。
</td></tr>
<tr>
<td><code>char    *strpbrk(const char *s, const char *breakset);</code>
</td>
<td>在字符串s中查找breakset中任意字符第一次出现的位置的指针值。strpbrk为string pointer break缩写。通常，breakset是分隔符的集合。不支持多字节字符集。
</td></tr>
<tr>
<td><code>char    *strstr(const char *haystack, const char *needle);</code>
</td>
<td>在字符串haystack中查找字符串needle第一次出现的位置，heystack的长度必须长于needle
</td></tr>
<tr>
<td><code>char    *strtok(char *strToken, const char *strDelimit );</code>
</td>
<td>将一个字符串strToken依据分界符（delimiter）分隔成一系列字串。此函数非线程安全，且不可重入；但MSVC实现时使用了thread-local static variable因而是线程安全的但仍然是不可重入，即在单线程中不能对两个源字符串交替调用该函数来分析token，应当对一个字符串分析完成后再处理别的字符串。
</td></tr>
<tr>
<td><code>size_t   strxfrm(char *dest, const char *src, size_t n);</code>
</td>
<td>根据当前locale转换一个字符串为strcmp使用的内部格式
</td></tr></tbody></table>
<div class="mw-heading mw-heading3"><h3 id="ISO_C扩展函数"><span id="ISO_C.E6.89.A9.E5.B1.95.E5.87.BD.E6.95.B0"></span>ISO C扩展函数</h3></div>
<table class="wikitable">

<tbody><tr>
<th>名称</th>
<th>说明</th>
<th>标准
</th></tr>
<tr>
<td><code>void    *memccpy(void *dest, const void *src, int c, size_t n
</code><p><code>);</code>
</p>
</td>
<td>在两块不重叠的内存地址间复制内容，直至复制了n字节或遇到内容为c的字节
</td>
<td>UNIX 98?
</td></tr>
<tr>
<td><code>void *mempcpy(void *dest, const void *src, size_t n);</code>
</td>
<td><code>memcpy</code>的变体，返回写入的最后一个字节的地址指针
</td>
<td><a href="GNU" title="GNU">GNU</a>
</td></tr>
<tr>
<td><code>errno_t strcat_s(char *s1, size_t s1max, const char *s2);</code>
</td>
<td><code>strcat</code>的变体，带边界检查
</td>
<td>ISO/IEC WDTR 24731
</td></tr>
<tr>
<td><code>errno_t strcpy_s(char *s1, size_t s1max, const char *s2);</code>
</td>
<td><code>strcpy</code>的变体，带边界检查
</td>
<td>ISO/IEC WDTR 24731
</td></tr>
<tr>
<td><code>char *strdup(const char *);</code>
</td>
<td>将字符串的内容复制到一段新分配的内存空间
</td>
<td><a href="POSIX" class="mw-redirect" title="POSIX">POSIX</a>；源于一个BSD扩展标准
</td></tr>
<tr>
<td><code>int     strerror_r(int, char *, size_t);</code>
</td>
<td>将strerror()的结果放入一段给定的内存缓冲，此函数是线程安全的
</td>
<td>POSIX:2001
</td></tr>
<tr>
<td><code>char *strerror_r(int, char *, size_t);</code>
</td>
<td>使用线程安全的方式返回strerror()的结果。在必要的时候才使用给定的内存缓冲 (与POSIX中的定义不一致).
</td>
<td>GNU
</td></tr>
<tr>
<td><code>size_t strlcat(char *dest, const char *src, size_t n);</code>
</td>
<td><code>strcat</code>的变体，带边界检查
</td>
<td>首先定义于<a href="OpenBSD" title="OpenBSD">OpenBSD</a>，现在也可以在<a href="FreeBSD" title="FreeBSD">FreeBSD</a>、<a href="Solaris" title="Solaris">Solaris</a>、<a href="Mac_OS_X" class="mw-redirect" title="Mac OS X">Mac OS X</a>中找到
</td></tr>
<tr>
<td><code>size_t <a href="Strlcpy" class="mw-redirect" title="Strlcpy">strlcpy</a>(char *dest, const char *src, size_t n);</code>
</td>
<td><code>strcpy</code>的变体，带边界检查
</td>
<td>首先定义于<a href="OpenBSD" title="OpenBSD">OpenBSD</a>，现在也可以在<a href="FreeBSD" title="FreeBSD">FreeBSD</a>、<a href="Solaris" title="Solaris">Solaris</a>、<a href="Mac_OS_X" class="mw-redirect" title="Mac OS X">Mac OS X</a>中找到
</td></tr>
<tr>
<td><code>char    *strsignal(int sig);</code>
</td>
<td>与<code>strerror</code>类似，返回<a href="%E6%9C%89%E7%AC%A6%E5%8F%B7%E6%95%B0" class="mw-redirect" title="有符号数">有符号数</a><code>sig</code>对应的错误解释字符串（非线程安全函数）
</td>
<td>BSDs, Solaris, Linux
</td></tr>
<tr>
<td><code>char    *strtok_r(char *, const char *, char **);</code>
</td>
<td>strtok的线程安全且可重入的版本
</td>
<td>POSIX
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="外部链接"><span id=".E5.A4.96.E9.83.A8.E9.93.BE.E6.8E.A5"></span>外部链接</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://linux.die.net/man/3/string">Linux库函数手册：字符串操作</a>（<a rel="nofollow" class="external text" href="https://web.archive.org/web/20101121094443/http://linux.die.net/man/3/string">页面存档备份</a>，存于<a href="%E4%BA%92%E8%81%94%E7%BD%91%E6%A1%A3%E6%A1%88%E9%A6%86" title="互联网档案馆">互联网档案馆</a>）</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
    This article is issued from <a class="external text" title="Last edited on 2024-06-07" href="https://zh.wikipedia.org/wiki/?title=String.h&amp;oldid=82949373">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.zh">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
            </div>
          </main>
        </div>
      </div>
    </div>
     <script src="./_webp_/webpHandler.js"></script>
  

</body></html>