nlib
Cstring.h ファイル

strlen, strcpy等を安全に使えるようにラップしています。 [詳解]

#include <stdarg.h>
#include <string.h>
#include "nn/nlib/Config.h"

[ソースコード]

名前空間

 nn::nlib
 共通して使われることの多いストリーム関連のクラス群や各種コンテナ、及びガシェットクラスが実装されています。nlib_nsはエイリアスです。
 

関数

size_t nn::nlib::StrLen (const char *str) noexcept
 nlib_strlen()をラップします。
 
size_t nn::nlib::StrLen (const nlib_utf16_t *str) noexcept
 nlib_utf16len()をラップします。
 
size_t nn::nlib::StrLen (const nlib_utf32_t *str) noexcept
 nlib_utf32len()をラップします。
 
size_t nn::nlib::StrLen (const wchar_t *str) noexcept
 nlib_wcslen()をラップします。
 
errno_t nn::nlib::CodePointCount (const char *str, size_t *count) noexcept
 nlib_strcplen()をラップします。
 
errno_t nn::nlib::CodePointCount (const nlib_utf16_t *str, size_t *count) noexcept
 nlib_utf16cplen()をラップします。
 
errno_t nn::nlib::CodePointCount (const nlib_utf32_t *str, size_t *count) noexcept
 nlib_utf32cplen()をラップします。
 
errno_t nn::nlib::CodePointCount (const wchar_t *str, size_t *count) noexcept
 nlib_wcscplen()をラップします。
 
int nn::nlib::StrCmp (const char *s1, const char *s2) noexcept
 strcmp()をラップします。
 
int nn::nlib::StrCmp (const wchar_t *s1, const wchar_t *s2) noexcept
 wcscmp()をラップします。
 
int nn::nlib::StrCmp (const nlib_utf16_t *s1, const nlib_utf16_t *s2) noexcept
 UTF-16文字列をstrcmp()と同様に比較します。
 
int nn::nlib::StrCmp (const nlib_utf32_t *s1, const nlib_utf32_t *s2) noexcept
 UTF-32文字列をstrcmp()と同様に比較します。
 
int nn::nlib::StrNcmp (const char *s1, const char *s2, size_t n) noexcept
 strncmp()をラップします。
 
int nn::nlib::StrNcmp (const wchar_t *s1, const wchar_t *s2, size_t n) noexcept
 wcsncmp()をラップします。
 
int nn::nlib::StrNcmp (const nlib_utf16_t *s1, const nlib_utf16_t *s2, size_t n) noexcept
 UTF-16文字列をstrncmp()と同様に比較します。
 
int nn::nlib::StrNcmp (const nlib_utf32_t *s1, const nlib_utf32_t *s2, size_t n) noexcept
 UTF-32文字列をstrncmp()と同様に比較します。
 
errno_t nn::nlib::StrCpy (char *dest, size_t dest_size, const char *src) noexcept
 nlib_strcpy()をラップします。
 
errno_t nn::nlib::StrCpy (nlib_utf16_t *dest, size_t dest_size, const nlib_utf16_t *src) noexcept
 nlib_utf16cpy()をラップします。
 
errno_t nn::nlib::StrCpy (nlib_utf32_t *dest, size_t dest_size, const nlib_utf32_t *src) noexcept
 nlib_utf32cpy()をラップします。
 
errno_t nn::nlib::StrCpy (wchar_t *dest, size_t dest_size, const wchar_t *src) noexcept
 nlib_wcscpy()をラップします。
 
template<class T , size_t N>
errno_t nn::nlib::StrCpy (T(&dest)[N], const T *src) noexcept
 上記関数のテンプレートオーバーロードです。 [詳解]
 
errno_t nn::nlib::StrNcpy (char *dest, size_t dest_size, const char *src, size_t n) noexcept
 nlib_strncpy()をラップします。
 
errno_t nn::nlib::StrNcpy (nlib_utf16_t *dest, size_t dest_size, const nlib_utf16_t *src, size_t n) noexcept
 nlib_utf16ncpy()をラップします。
 
errno_t nn::nlib::StrNcpy (nlib_utf32_t *dest, size_t dest_size, const nlib_utf32_t *src, size_t n) noexcept
 nlib_utf32ncpy()をラップします。
 
errno_t nn::nlib::StrNcpy (wchar_t *dest, size_t dest_size, const wchar_t *src, size_t n) noexcept
 nlib_wcsncpy()をラップします。
 
template<class T , size_t N>
errno_t nn::nlib::StrNcpy (T(&dest)[N], const T *src, size_t n) noexcept
 上記関数のテンプレートオーバーロードです。 [詳解]
 
template<class T , size_t N>
errno_t nn::nlib::StrCat (T(&dest)[N], const T *src) noexcept
 上記関数のテンプレートオーバーロードです。 [詳解]
 
template<class T , size_t N>
errno_t nn::nlib::StrNcat (T(&dest)[N], const T *src, size_t n) noexcept
 上記関数のテンプレートオーバーロードです。 [詳解]
 
int nn::nlib::VsnPrintfFallback (char *buf, size_t size, const char *fmt, va_list args) noexcept
 VsnPrintfのフォールバックです。 [詳解]
 
int nn::nlib::VsnPrintfFallback (wchar_t *buf, size_t size, const wchar_t *fmt, va_list args) noexcept
 wchar_tの文字列を引数にとるバージョンです。
 
int nn::nlib::VsnPrintfFallback (nlib_utf16_t *buf, size_t size, const nlib_utf16_t *fmt, va_list args) noexcept
 nlib_utf16_t(char16_t)の文字列を引数にとるバージョンです。
 
int nn::nlib::VsnPrintfFallback (nlib_utf32_t *buf, size_t size, const nlib_utf32_t *fmt, va_list args) noexcept
 nlib_utf32_t(char32_t)の文字列を引数にとるバージョンです。
 
int nn::nlib::VsnPrintf (char *buf, size_t size, const char *fmt, va_list args) noexcept
 vsnprintf()を実行します。 [詳解]
 
int nn::nlib::VsnPrintf (wchar_t *buf, size_t size, const wchar_t *fmt, va_list args) noexcept
 vsnprintfを実行します。 [詳解]
 
int nn::nlib::VsnPrintf (nlib_utf16_t *buf, size_t size, const nlib_utf16_t *fmt, va_list args) noexcept
 ワイド文字が2バイトの場合は、wchar_t用のVsnPrintf()を利用し、4バイトの場合はVsnPrintfFallback()を利用します。
 
int nn::nlib::VsnPrintf (nlib_utf32_t *buf, size_t size, const nlib_utf32_t *fmt, va_list args) noexcept
 ワイド文字が4バイトの場合は、wchar_t用のVsnPrintf()を利用し、2バイトの場合はVsnPrintfFallback()を利用します。
 
template<size_t N, class CH >
int nn::nlib::VsnPrintf (CH(&buf)[N], const CH *fmt, va_list args) noexcept
 上記関数のテンプレートオーバーロードです。
 
template<class CH >
int nn::nlib::SnPrintf (CH *buf, size_t size, const CH *fmt,...) noexcept
 内部でVsnPrintf()を実行します。
 
template<size_t N, class CH >
int nn::nlib::SnPrintf (CH(&buf)[N], const CH *fmt,...) noexcept
 上記関数のテンプレートオーバーロードです。
 

詳解

strlen, strcpy等を安全に使えるようにラップしています。

Cstring.h に定義があります。