YSTest: null-terminated character string utilities

YSTest PreAlpha_b700_20160611 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

函数
null-terminated character string utilities
Gerneral Algorithms » Non-modifying Sequence Operations | String Algorithms

简单 NTCTS 操作。 更多...

null-terminated character string utilities 的协作图:

## 函数

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 >
_tChar * | ystdex::ntctscpy (_tChar *s1, const _tChar *s2, size_t n)
| 复制确定源长度的 NTCTS 。 更多...
template<typename _tChar >
_tChar * | ystdex::ntctsmove (_tChar *s1, const _tChar *s2, size_t n)
| 转移 NTCTS 。 更多...
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 >
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_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<class _tString >
auto | ystdex::normalize (_tString &str) -> decltype(str.resize(ystdex::ntctslen(str.c_str())))
| NTCTS 正规化：保留空字符之前的字符。 更多...
template<class _tString , typename = ystdex::enable_for_string_class_t<_tString>>
_tString && | ystdex::ntctsncpy (_tString &&str, const typename string_traits< _tString >::const_pointer s, const typename string_traits< _tString >::size_type n)
| 复制不超过指定长度的 NTCTS 。 更多...
template<class _tString , typename = ystdex::enable_for_string_class_t<_tString>>
_tString && | ystdex::ntctsncpy (_tString &&str, _tString &&s, const typename string_traits< _tString >::size_type n)

## 详细描述

简单 NTCTS 操作。

前置条件
  指针指定的字符串或指针和长度指定的范围为 NTCTS 。

参见
  ISO C++03 (17.1.12, 17.3.2.1.3.2) 。

以指针或指针和长度指定的范围参数作为 NTCTS 对字符串序列进行非修改操作。 NTCTS(null-terminated character string) 即空字符标记结束的字符串， 除了结束字符外没有空字符。简单指不包括 NTMBS(null-terminated mutibyte string) ， 按等宽字符考虑。

## 函数说明

template<class _tString >

auto ystdex::normalize | ( | _tString & | str | ) | -> decltype(str.resize(ystdex::ntctslen(str.c_str())))

NTCTS 正规化：保留空字符之前的字符。

后置条件
  `str.length() == ystdex::ntctslen(str.c_str())` 。

自从
  build 606

在文件 string.hpp 第 412 行定义.

参考 ystdex::ntctslen() , 以及 YSLib::Text::str.

函数调用图:
template<typename _tChar >

int ystdex::ntctscmp | ( | const _tChar * | s1,
|  | const _tChar * | s2
| ) |  |

按字典序比较简单 NTCTS 。

前置条件
  断言： `s1 && s2` 。

注解
  语义同 std::basic_string<_tChar>::compare ，但忽略指定长度。

在文件 cstring.h 第 154 行定义.

参考 YSLib::IO::int, ystdex::is_null(), yconstraint , 以及 yunseq.

参考自 ystdex::basic_tstring_view< _tChar, _tTraits, 0 >::compare(), platform::IsNodeShared() , 以及 ystdex::ntctscmp().

函数调用图:

这是这个函数的调用关系图:

int ystdex::ntctscmp | ( | const char * | s1,
|  | const char * | s2
| ) |  |

inline

自从
  build 658

在文件 cstring.h 第 166 行定义.

参考 yconstraint.

int ystdex::ntctscmp | ( | const wchar_t * | s1,
|  | const wchar_t * | s2
| ) |  |

inline

在文件 cstring.h 第 173 行定义.

参考 yconstraint.

int ystdex::ntctscmp | ( | const uchar_t * | s1,
|  | const uchar_t * | s2
| ) |  |

inline

在文件 cstring.h 第 180 行定义.

参考 ystdex::ntctscmp().

函数调用图:
template<typename _tChar >

int ystdex::ntctscmp | ( | const _tChar * | s1,
|  | const _tChar * | s2,
|  | size_t | n
| ) |  |

注解
  语义同 std::basic_string<_tChar>::compare 。

在文件 cstring.h 第 190 行定义.

参考 platform::n , 以及 yconstraint.

template<typename _tChar >

int ystdex::ntctscmp | ( | const _tChar * | s1,
|  | const _tChar * | s2,
|  | size_t | n1,
|  | size_t | n2
| ) |  |

注解
  语义同 std::lexicographical_compare 。

在文件 cstring.h 第 198 行定义.

参考 yconstraint.

template<typename _tChar >

enable_if_irreplaceable_char_t<_tChar, _tChar*> ystdex::ntctscpy | ( | _tChar * | s1,
|  | const _tChar * | s2
| ) |  |

复制 NTCTS 。

前置条件
  复制的 NTCTS 存储不重叠。

在文件 cstring.h 第 250 行定义.

参考 ystdex::is_null() , 以及 yconstraint.

参考自 ystdex::ntctscpy() , 以及 platform::ugetcwd().

函数调用图:

这是这个函数的调用关系图:

char* ystdex::ntctscpy | ( | char * | s1,
|  | const char * | s2
| ) |  |

inline

在文件 cstring.h 第 262 行定义.

参考 yconstraint.

wchar_t* ystdex::ntctscpy | ( | wchar_t * | s1,
|  | const wchar_t * | s2
| ) |  |

inline

在文件 cstring.h 第 269 行定义.

参考 yconstraint.

wchar_t* ystdex::ntctscpy | ( | uchar_t * | s1,
|  | const uchar_t * | s2
| ) |  |

inline

在文件 cstring.h 第 276 行定义.

参考 ystdex::ntctscpy().

函数调用图:
template<typename _tChar , typename = enable_if_replaceable_t<_tChar, char>>

_tChar* ystdex::ntctscpy | ( | _tChar * | s1,
|  | const _tChar * | s2
| ) |  |

inline

在文件 cstring.h 第 284 行定义.

参考 ystdex::ntctscpy() , 以及 ystdex::replace_cast().

函数调用图:
template<typename _tChar >

_tChar* ystdex::ntctscpy | ( | _tChar * | s1,
|  | const _tChar * | s2,
|  | size_t | n
| ) |  |

复制确定源长度的 NTCTS 。

在文件 cstring.h 第 300 行定义.

参考 platform::n, yconstraint , 以及 yunseq.

template<typename _tChar >

int ystdex::ntctsicmp | ( | const _tChar * | s1,
|  | const _tChar * | s2
| ) |  |

按字典序比较简单 NTCTS （忽略大小写）。

注解
  语义同 std::basic_string<_tChar>::compare ，但忽略指定长度和大小写， 使用字符串结束符判断结束。

在文件 cstring.h 第 213 行定义.

参考 YSLib::IO::int, ystdex::is_null(), ystdex::tolower(), yconstraint , 以及 yunseq.

函数调用图:
template<typename _tChar >

int ystdex::ntctsicmp | ( | const _tChar * | s1,
|  | const _tChar * | s2,
|  | size_t | n
| ) |  |

按字典序比较不超过指定长度的简单 NTCTS （忽略大小写）。

注解
  语义同 std::basic_string<_tChar>::compare ，但忽略大小写， 使用字符串结束符判断结束。

在文件 cstring.h 第 229 行定义.

参考 CHRLib::d, YSLib::IO::int, ystdex::is_null(), platform::n, ystdex::tolower(), yconstraint , 以及 yunseq.

函数调用图:
template<typename _tChar >

_tChar* ystdex::ntctsmove | ( | _tChar * | s1,
|  | const _tChar * | s2,
|  | size_t | n
| ) |  |

转移 NTCTS 。

注解
  复制可能重叠的 NTCTS 存储。

在文件 cstring.h 第 376 行定义.

参考 platform::n, yconstraint , 以及 yunseq.

template<typename _tChar >

enable_if_irreplaceable_char_t<_tChar, _tChar*> ystdex::ntctsncpy | ( | _tChar * | s1,
|  | const _tChar * | s2,
|  | size_t | n
| ) |  |

复制不超过指定长度的 NTCTS 。

注解
  目标字符串短于指定长度的部分会被填充空字符。

警告
  源字符串在指定长度内没有空字符则目标字符串不以空字符结尾。

在文件 cstring.h 第 315 行定义.

参考 ystdex::is_null(), platform::n , 以及 yconstraint.

参考自 ystdex::ntctsncpy().

函数调用图:

这是这个函数的调用关系图:

char* ystdex::ntctsncpy | ( | char * | s1,
|  | const char * | s2,
|  | size_t | n
| ) |  |

inline

在文件 cstring.h 第 333 行定义.

参考 platform::n , 以及 yconstraint.

wchar_t* ystdex::ntctsncpy | ( | wchar_t * | s1,
|  | const wchar_t * | s2,
|  | size_t | n
| ) |  |

inline

在文件 cstring.h 第 340 行定义.

参考 platform::n , 以及 yconstraint.

wchar_t* ystdex::ntctsncpy | ( | uchar_t * | s1,
|  | const uchar_t * | s2,
|  | size_t | n
| ) |  |

inline

在文件 cstring.h 第 347 行定义.

参考 platform::n , 以及 ystdex::ntctsncpy().

函数调用图:
template<typename _tChar , typename = enable_if_replaceable_t<_tChar, char>>

_tChar* ystdex::ntctsncpy | ( | _tChar * | s1,
|  | const _tChar * | s2,
|  | size_t | n
| ) |  |

inline

在文件 cstring.h 第 355 行定义.

参考 platform::n, ystdex::ntctsncpy() , 以及 ystdex::replace_cast().

函数调用图:
template<class _tString , typename = ystdex::enable_for_string_class_t<_tString>>

_tString&& ystdex::ntctsncpy | ( | _tString && | str,
|  | const typename string_traits< _tString >::const_pointer | s,
|  | const typename string_traits< _tString >::size_type | n
| ) |  |

inline

复制不超过指定长度的 NTCTS 。

注解
  目标字符串短于指定长度的部分可能被填充空字符。

警告
  源字符串在指定长度内没有空字符则目标字符串不保证以空字符结尾。

自从
  build 604

前置条件
  断言：指针参数非空。

在文件 string.hpp 第 428 行定义.

参考 platform::n, CHRLib::s, YSLib::Text::str , 以及 yconstraint.

template<class _tString , typename = ystdex::enable_for_string_class_t<_tString>>

_tString&& ystdex::ntctsncpy | ( | _tString && | str,
|  | _tString && | s,
|  | const typename string_traits< _tString >::size_type | n
| ) |  |

inline

在文件 string.hpp 第 437 行定义.

参考 CHRLib::s, YSLib::Text::str , 以及 yforward.