命名空间
变体
操作

标准库头文件 <string.h>

来自 cppreference.cn
< c‎ | 头文件

此头文件提供用于处理空终止字节字符串的函数。

目录

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

类型

sizeof 运算符返回的无符号整数类型
(类型定义) [编辑]

函数

字符串操作
将一个字符串复制到另一个字符串
(函数) [编辑]
从一个字符串复制一定数量的字符到另一个字符串
(函数) [编辑]
连接两个字符串
(函数) [编辑]
连接两个字符串的一定数量的字符
(函数) [编辑]
转换字符串,以便 strcmp 产生与 strcoll 相同的结果
(函数) [编辑]
(C23)
分配字符串的副本
(函数) [编辑]
分配指定大小的字符串的副本
(函数) [编辑]
字符串检查
返回给定字符串的长度
(函数) [编辑]
比较两个字符串
(函数) [编辑]
比较两个字符串的一定数量的字符
(函数) [编辑]
根据当前区域设置比较两个字符串
(函数) [编辑]
查找字符的首次出现
(函数) [编辑]
查找字符的最后一次出现
(函数) [编辑]
返回最大初始段的长度,该段由
仅由在另一个字节字符串中找到的字符组成
(函数) [编辑]
返回最大初始段的长度,该段由
仅由在另一个字节字符串中未找到的字符组成
(函数) [编辑]
在一个字符串中查找任何字符在另一个字符串中的首次出现位置
(函数) [编辑]
查找字符子串的首次出现
(函数) [编辑]
在字节字符串中查找下一个标记
(函数) [编辑]
字符数组操作
在数组中搜索字符的首次出现
(函数) [编辑]
比较两个缓冲区
(函数) [编辑]
用字符填充缓冲区
(函数) [编辑]
将一个缓冲区复制到另一个缓冲区
(函数) [编辑]
将一个缓冲区移动到另一个缓冲区
(函数) [编辑]
将一个缓冲区复制到另一个缓冲区,在指定的定界符后停止
(函数) [编辑]
其他
返回给定错误代码的文本版本
(函数) [编辑]

[编辑] 概要

#define __STDC_VERSION_STRING_H__ 202311L
 
#define NULL /* see description */
 
typedef /* see description */ size_t;
 
void* memcpy(void* restrict s1, const void* restrict s2, size_t n);
void* memccpy(void* restrict s1, const void* restrict s2, int c, size_t n);
void* memmove(void* s1, const void* s2, size_t n);
char* strcpy(char* restrict s1, const char* restrict s2);
char* strncpy(char* restrict s1, const char* restrict s2, size_t n);
char* strdup(const char* s);
char* strndup(const char* s, size_t n);
char* strcat(char* restrict s1, const char* restrict s2);
char* strncat(char* restrict s1, const char* restrict s2, size_t n);
int memcmp(const void* s1, const void* s2, size_t n);
int strcmp(const char* s1, const char* s2);
int strcoll(const char* s1, const char* s2);
int strncmp(const char* s1, const char* s2, size_t n);
size_t strxfrm(char* restrict s1, const char* restrict s2, size_t n);
/*QVoid*/* memchr(/*QVoid*/* s, int c, size_t n);
/*QChar*/* strchr(/*QChar*/* s, int c);
size_t strcspn(const char* s1, const char* s2);
/*QChar*/* strpbrk(/*QChar*/* s1, const char* s2);
/*QChar*/* strrchr(/*QChar*/* s, int c);
size_t strspn(const char* s1, const char* s2);
/*QChar*/* strstr(/*QChar*/* s1, const char* s2);
char* strtok(char* restrict s1, const char* restrict s2);
void* memset(void* s, int c, size_t n);
void* memset_explicit(void* s, int c, size_t n);
char* strerror(int errnum);
size_t strlen(const char* s);
size_t strnlen(const char* s, size_t n);

仅当实现定义了 __STDC_LIB_EXT1__ 并且用户代码在包含 <string.h> 之前额外定义了 __STDC_WANT_LIB_EXT1__

#ifdef __STDC_WANT_LIB_EXT1__
 
tyepdef /* see description */ errno_t;
tyepdef /* see description */ rsize_t;
 
errno_t memcpy_s(void* restrict s1, rsize_t s1max, const void* restrict s2, rsize_t n);
errno_t memmove_s(void* s1, rsize_t s1max, const void* s2, rsize_t n);
errno_t strcpy_s(char* restrict s1, rsize_t s1max, const char* restrict s2);
errno_t strncpy_s(char* restrict s1, rsize_t s1max, const char* restrict s2, rsize_t n);
errno_t strcat_s(char* restrict s1, rsize_t s1max, const char* restrict s2);
errno_t strncat_s(char* restrict s1, rsize_t s1max, const char* restrict s2, rsize_t n);
char* strtok_s(char* restrict s1, rsize_t* restrict s1max,
               const char* restrict s2, char** restrict ptr);
errno_t memset_s(void* s, rsize_t smax, int c, rsize_t n)
errno_t strerror_s(char* s, rsize_t maxsize, errno_t errnum);
size_t strerrorlen_s(errno_t errnum);
size_t strnlen_s(const char* s, size_t maxsize);
 
#endif