YSTest: cstring.h 文件参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

类 | 命名空间 | 类型定义 | 函数
cstring.h 文件参考
YBaseLib » YStandardExtend

ISO C 标准字符串扩展。 更多...

`#include "type_pun.hpp"`
`#include <cstring>`
`#include <libdefect/string.h>`
`#include "cassert.h"`
`#include "cctype.h"`
`#include <cwchar>`
`#include <algorithm>`
cstring.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

## 类

struct | ystdex::is_char_specialized_in_std< _tChar >
| 判断字符类型是否被 ISO C++ 指定提供 `std::char_traits` 的特化。 更多...

## 命名空间

| ystdex
| `<memory>` 特性测试宏。

## 类型定义

template<typename _tChar , typename _type = void>
using | ystdex::enable_if_irreplaceable_char_t = enable_if_t< nor_< is_trivially_replaceable< _tChar, char >, is_trivially_replaceable< _tChar, wchar_t > >::value, _type >
| 选择不和 char 或 wchar_t 可替换字符类类型的特定重载以避免冲突。 更多...
using | ystdex::uchar_t = cond_t< is_trivially_replaceable< wchar_t, char16_t >, char16_t, cond_t< is_trivially_replaceable< wchar_t, char32_t >, char32_t, void > >
| 指定和 `wchar_t` 互相替换存储的非 `char` 内建字符类型。 更多...

## 函数

size_t | ystdex::strlen_n (const char *s)
| 带空指针检查的字符串长度计算。 更多...
char * | ystdex::strcpy_n (char *d, const char *s)
| 带空指针检查的字符串复制。 更多...
char * | ystdex::strcpycat (char *, const char *, const char *)
| 带空指针检查的字符串连接。 更多...
char * | ystdex::strcatdup (const char *, const char *, void *(*)(size_t)=std::malloc)
| 带空指针检查的字符串连接复制。 更多...
template<typename _tChar >
bool | ystdex::is_null (_tChar c)
| 使用 `std::char_traits::eq` 判断是否为空字符。 更多...
template<typename _tChar >
int | ystdex::ntctscmp (const _tChar *s1, const _tChar *s2)
| 按字典序比较简单 NTCTS 。 更多...
int | ystdex::ntctscmp (const char *s1, const char *s2)
int | ystdex::ntctscmp (const wchar_t *s1, const wchar_t *s2)
int | ystdex::ntctscmp (const uchar_t *s1, const uchar_t *s2)
template<typename _tChar >
int | ystdex::ntctscmp (const _tChar *s1, const _tChar *s2, size_t n)
template<typename _tChar >
int | ystdex::ntctscmp (const _tChar *s1, const _tChar *s2, size_t n1, size_t n2)
template<typename _tChar >
int | ystdex::ntctsicmp (const _tChar *s1, const _tChar *s2)
| 按字典序比较简单 NTCTS （忽略大小写）。 更多...
template<typename _tChar >
int | ystdex::ntctsicmp (const _tChar *s1, const _tChar *s2, size_t n)
| 按字典序比较不超过指定长度的简单 NTCTS （忽略大小写）。 更多...
template<typename _tChar >
enable_if_irreplaceable_char_t< _tChar, _tChar * > | ystdex::ntctscpy (_tChar *s1, const _tChar *s2)
| 复制 NTCTS 。 更多...
char * | ystdex::ntctscpy (char *s1, const char *s2)
wchar_t * | ystdex::ntctscpy (wchar_t *s1, const wchar_t *s2)
wchar_t * | ystdex::ntctscpy (uchar_t *s1, const uchar_t *s2)
template<typename _tChar , typename = enable_if_replaceable_t<_tChar, char>>
_tChar * | ystdex::ntctscpy (_tChar *s1, const _tChar *s2)
template<typename _tChar >
enable_if_replaceable_t< _tChar, wchar_t, _tChar * > | ystdex::ntctscpy (_tChar *s1, const _tChar *s2)
template<typename _tChar >
_tChar * | ystdex::ntctscpy (_tChar *s1, const _tChar *s2, size_t n)
| 复制确定源长度的 NTCTS 。 更多...
template<typename _tChar >
enable_if_irreplaceable_char_t< _tChar, _tChar * > | ystdex::ntctsncpy (_tChar *s1, const _tChar *s2, size_t n)
| 复制不超过指定长度的 NTCTS 。 更多...
char * | ystdex::ntctsncpy (char *s1, const char *s2, size_t n)
wchar_t * | ystdex::ntctsncpy (wchar_t *s1, const wchar_t *s2, size_t n)
wchar_t * | ystdex::ntctsncpy (uchar_t *s1, const uchar_t *s2, size_t n)
template<typename _tChar , typename = enable_if_replaceable_t<_tChar, char>>
_tChar * | ystdex::ntctsncpy (_tChar *s1, const _tChar *s2, size_t n)
template<typename _tChar >
enable_if_replaceable_t< _tChar, wchar_t, _tChar * > | ystdex::ntctsncpy (_tChar *s1, const _tChar *s2, size_t n)
template<typename _tChar >
_tChar * | ystdex::ntctsmove (_tChar *s1, const _tChar *s2, size_t n)
| 转移 NTCTS 。 更多...
template<typename _tChar >
_tChar * | ystdex::ntctschr (_tChar *s, remove_const_t< _tChar > c)
| 在简单 NTCTS 内查找字符。 更多...
char * | ystdex::ntctschr (char *s, char c)
const char * | ystdex::ntctschr (const char *s, char c)
wchar_t * | ystdex::ntctschr (wchar_t *s, wchar_t c)
const wchar_t * | ystdex::ntctschr (const wchar_t *s, wchar_t c)
uchar_t * | ystdex::ntctschr (uchar_t *s, uchar_t c)
const uchar_t * | ystdex::ntctschr (const uchar_t *s, uchar_t c)
template<typename _tChar >
size_t | ystdex::ntctsfind (const _tChar *s, size_t n, _tChar c)
| 在简单 NTCTS 的指定前若干字符内查找字符。 更多...
template<typename _tChar >
size_t | ystdex::ntctslen (const _tChar *s)
| 计算简单 NTCTS 长度。 更多...
template<typename _tChar >
size_t | ystdex::ntctslen (const _tChar *s, size_t n)
| 计算不超过指定长度的简单 NTCTS 长度。 更多...
template<typename _tChar >
size_t | ystdex::const_ntctslen (const _tChar *s)
| 计算简单 NTCTS 长度。 更多...
template<typename _tChar >
size_t | ystdex::const_ntctscnt (const _tChar *s, _tChar c)
| 计算简单 NTCTS 中的指定字符数。 更多...
template<typename _tChar >
std::char_traits< _tChar >::int_type | ystdex::const_ntctscmp (const _tChar *s1, const _tChar *s2)
| 比较简单 NTCTS 。 更多...
template<typename _tChar >
std::char_traits< _tChar >::int_type | ystdex::const_ntctscmp (const _tChar *s1, const _tChar *s2, size_t n)
| 比较不超过指定长度的简单 NTCTS 。 更多...
template<typename _tChar >
size_t | ystdex::const_ntctsfind (const _tChar *s, _tChar c)
| 在简单 NTCTS 中顺序查找指定字符。 更多...
template<typename _tChar >
size_t | ystdex::const_ntctsfind (const _tChar *s, _tChar c, size_t n)
| 在简单 NTCTS 中顺序查找第指定次数出现的指定字符。 更多...
template<typename _tChar >
size_t | ystdex::const_ntctsfind (const _tChar *s1, const _tChar *s2)
| 在简单 NTCTS 中顺序查找作为子串的指定 NTCTS 。 更多...
template<typename _tChar , typename _tSize , class _tTraits = std::char_traits<_tChar>, _tSize _vNPos = _tSize(-1)>
_tSize | ystdex::str_find (const _tChar *p, _tSize sz, _tChar c, _tSize pos)
| 查找字符或子串。 更多...
template<typename _tChar , typename _tSize , class _tTraits = std::char_traits<_tChar>, _tSize _vNPos = _tSize(-1)>
_tSize | ystdex::str_find (const _tChar *p, _tSize sz, const _tChar *s, _tSize pos, _tSize n)
template<typename _tChar , typename _tSize , class _tTraits = std::char_traits<_tChar>, _tSize _vNPos = _tSize(-1)>
_tSize | ystdex::str_rfind (const _tChar *p, _tSize sz, _tChar c, _tSize pos)
template<typename _tChar , typename _tSize , class _tTraits = std::char_traits<_tChar>, _tSize _vNPos = _tSize(-1)>
_tSize | ystdex::str_rfind (const _tChar *p, _tSize sz, const _tChar *s, _tSize pos, _tSize n)
template<typename _tChar , typename _tSize , class _tTraits = std::char_traits<_tChar>, _tSize _vNPos = _tSize(-1)>
_tSize | ystdex::str_find_first_of (const _tChar *p, _tSize sz, const _tChar *s, _tSize pos, _tSize n)
template<typename _tChar , typename _tSize , class _tTraits = std::char_traits<_tChar>, _tSize _vNPos = _tSize(-1)>
_tSize | ystdex::str_find_last_of (const _tChar *p, _tSize sz, const _tChar *s, _tSize pos, _tSize n)
template<typename _tChar , typename _tSize , class _tTraits = std::char_traits<_tChar>, _tSize _vNPos = _tSize(-1)>
_tSize | ystdex::str_find_first_not_of (const _tChar *p, _tSize sz, _tChar c, _tSize pos)
template<typename _tChar , typename _tSize , class _tTraits = std::char_traits<_tChar>, _tSize _vNPos = _tSize(-1)>
_tSize | ystdex::str_find_first_not_of (const _tChar *p, _tSize sz, const _tChar *s, _tSize pos, _tSize n)
template<typename _tChar , typename _tSize , class _tTraits = std::char_traits<_tChar>, _tSize _vNPos = _tSize(-1)>
_tSize | ystdex::str_find_last_not_of (const _tChar *p, _tSize sz, _tChar c, _tSize pos)
template<typename _tChar , typename _tSize , class _tTraits = std::char_traits<_tChar>, _tSize _vNPos = _tSize(-1)>
_tSize | ystdex::str_find_last_not_of (const _tChar *p, _tSize sz, const _tChar *s, _tSize pos, _tSize n)

## 详细描述

ISO C 标准字符串扩展。

版本
  r2657

作者
  FrankHB frank.nosp@m.hb19.nosp@m.89@gm.nosp@m.ail..nosp@m.com

自从
  build 245

创建时间:
  2009-12-27 17:31:14 +0800

修改时间:
  2020-07-17 01:14 +0800

文本编码:
  UTF-8

模块名称:
  YStandardEx::CString

扩展标准库头 `<cstring>` ，提供可在翻译时求值的 C 风格字符串操作等接口。

在文件 cstring.h 中定义.