命名空间
变体
操作

标准库头文件 <cstring>

来自 cppreference.com
< cpp‎ | 头文件
 
 
标准库头文件
语言支持
概念
<concepts> (C++20)
诊断
<system_error> (C++11)

内存管理
<memory_resource> (C++17)  
元编程
<type_traits> (C++11)
<ratio> (C++11)
通用实用程序
<utility>
<tuple> (C++11)
<optional> (C++17)
<variant> (C++17)
<any> (C++17)
<debugging> (C++26)
<expected> (C++23)
<bitset>
<charconv> (C++17)
<format> (C++20)
<bit> (C++20)

字符串
<cstring>
<cwchar>
<cuchar> (C++11)

容器
<flat_set> (C++23)
<span> (C++20)
<mdspan> (C++23)
<inplace_vector> (C++26)
迭代器
<iterator>
范围
<ranges> (C++20)
<generator> (C++23)
算法
数值
<cfenv> (C++11)
<complex>
<cmath>
<linalg> (C++26)
<numbers> (C++20)

时间
<chrono> (C++11)
本地化
<codecvt> (C++11/17/26*)
<text_encoding> (C++26)
输入/输出
<filesystem> (C++17)
<cstdio>
<cinttypes> (C++11)
<strstream> (C++98/26*)
正则表达式
<regex> (C++11)
并发支持
<stop_token> (C++20)
<thread> (C++11)
<atomic> (C++11)
<rcu> (C++26)
<stdatomic.h> (C++23)
<mutex> (C++11)
<shared_mutex> (C++14)

<condition_variable> (C++11)  
<semaphore> (C++20)
<latch> (C++20)

<barrier> (C++20)
<future> (C++11)
<hazard_pointer> (C++26)

C 兼容性
<cstdbool> (C++11/17/20*)  
<ccomplex> (C++11/17/20*)
<ctgmath> (C++11/17/20*)

<cstdalign> (C++11/17/20*)

<ciso646> (直到 C++20)

 

此头文件最初位于 C 标准库中,名为 <string.h>.

此头文件用于 C 风格的以 null 结尾的字节字符串.

内容

[编辑]

实现定义的空指针常量
(宏常量) [编辑]

[编辑] 类型

sizeof 运算符返回的无符号整型
(typedef) [编辑]

[编辑] 函数

字符串操作
将一个字符串复制到另一个字符串
(函数) [编辑]
将一个字符串的特定数量的字符复制到另一个字符串
(函数) [编辑]
连接两个字符串
(函数) [编辑]
连接两个字符串的特定数量的字符
(函数) [编辑]
转换字符串,以便 `strcmp` 的结果与 `strcoll` 相同
(函数) [编辑]
字符串检查
返回给定字符串的长度
(函数) [编辑]
比较两个字符串
(函数) [编辑]
比较两个字符串的特定数量的字符
(函数) [编辑]
根据当前区域设置比较两个字符串
(函数) [编辑]
查找字符的第一次出现
(函数) [编辑]
查找字符的最后一次出现
(函数) [编辑]
返回由另一个字节字符串中找到的字符组成的最大初始段的长度

(函数) [编辑]
返回由另一个字节字符串中找到的字符组成的最大初始段的长度
返回由另一个字节字符串中没有找到的字符组成的最大初始段的长度
(函数) [编辑]
查找一组分隔符中任何字符的第一个位置
(函数) [编辑]
查找字符子字符串的第一次出现
(函数) [编辑]
在字节字符串中查找下一个标记
(函数) [编辑]
字符数组操作
在数组中搜索字符的第一次出现
(函数) [编辑]
比较两个缓冲区
(函数) [编辑]
用字符填充缓冲区
(函数) [编辑]
将一个缓冲区复制到另一个缓冲区
(函数) [编辑]
将一个缓冲区移动到另一个缓冲区
(函数) [编辑]
其他
返回给定错误代码的文本版本
(函数) [编辑]

[编辑] 说明

[编辑] 概要

namespace std {
  using size_t = /* see description */;                  // freestanding
 
  void* memcpy(void* s1, const void* s2, size_t n);      // freestanding
  void* memmove(void* s1, const void* s2, size_t n);     // freestanding
  char* strcpy(char* s1, const char* s2);                // freestanding
  char* strncpy(char* s1, const char* s2, size_t n);     // freestanding
  char* strcat(char* s1, const char* s2);                // freestanding
  char* strncat(char* s1, const char* s2, size_t n);     // freestanding
  int memcmp(const void* s1, const void* s2, size_t n);  // freestanding
  int strcmp(const char* s1, const char* s2);            // freestanding
  int strcoll(const char* s1, const char* s2);
  int strncmp(const char* s1, const char* s2, size_t n); // freestanding
  size_t strxfrm(char* s1, const char* s2, size_t n);
  const void* memchr(const void* s, int c, size_t n);    // freestanding
  void* memchr(void* s, int c, size_t n);                // freestanding
  const char* strchr(const char* s, int c);              // freestanding
  char* strchr(char* s, int c);                          // freestanding
  size_t strcspn(const char* s1, const char* s2);        // freestanding
  const char* strpbrk(const char* s1, const char* s2);   // freestanding
  char* strpbrk(char* s1, const char* s2);               // freestanding
  const char* strrchr(const char* s, int c);             // freestanding
  char* strrchr(char* s, int c);                         // freestanding
  size_t strspn(const char* s1, const char* s2);         // freestanding
  const char* strstr(const char* s1, const char* s2);    // freestanding
  char* strstr(char* s1, const char* s2);                // freestanding
  char* strtok(char* s1, const char* s2);                // freestanding
  void* memset(void* s, int c, size_t n);                // freestanding
  char* strerror(int errnum);
  size_t strlen(const char* s);                          // freestanding
}
 
#define NULL /* see description */                       // freestanding