size_t SDL_utf8strnlen(const char *str, size_t bytes);
| const char * | str | NUL終端のUTF-8文字列. NULL不可 |
| size_t | bytes | 文字列の最大バイト数 |
(size_t) bytesを超えないstrの長さ(NUL終端を含まないコードポイント数)を戻す.
NUL終端を含まないstrのコードポイントの数(バイト数ではない)を求める.
文字列のバイト数を求めたい場合は, SDL_strlen()の使用を検討すること.
長さのカウントはbytesバイト(コードポイント数ではない)で終了する.
これは直観に反するが, 文字列バッファの全サイズを簡単に表すことができる.
この関数のUnicodeの処理は, NUL終端の任意のバイト列の文字列ではなく, 正しいUTF-8文字列を想定している. UTF-8として有効でないバイトはUnicode文字のU+FFFD(置換文字)として扱われるため, 不正または不完全なUTF-8シーケンスがいくつかの置換文字としてカウントされる可能性がある.
この関数はどのスレッドからも安全に呼べる.