_strncnt、_wcsncnt、_mbsnbcnt、_mbsnbcnt_l、_mbsnccnt、_mbsnccnt_l_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l

指定されたカウント内で文字数またはバイト数を返します。Returns the number of characters or bytes within a specified count.

重要

_mbsnbcnt_mbsnbcnt_l_mbsnccnt、および _mbsnccnt_l Windows ランタイムで実行するアプリケーションでは使用できません。_mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, and _mbsnccnt_l cannot be used in applications that execute in the Windows Runtime. 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。For more information, see CRT functions not supported in Universal Windows Platform apps.

構文Syntax

size_t _strncnt(
   const char *str,
   size_t count
);
size_t _wcsncnt(
   const wchar_t *str,
   size_t count
);
size_t _mbsnbcnt(
   const unsigned char *str,
   size_t count
);
size_t _mbsnbcnt_l(
   const unsigned char *str,
   size_t count,
   _locale_t locale
);
size_t _mbsnccnt(
   const unsigned char *str,
   size_t count
);
size_t _mbsnccnt_l(
   const unsigned char *str,
   size_t count,
   _locale_t locale
);

パラメーターParameters

strstr
調査する文字列。String to be examined.

countcount
数の文字またはバイトで調査するstrします。Number of characters or bytes to be examined in str.

localelocale
使用するロケール。Locale to use.

戻り値Return Value

_mbsnbcnt_mbsnbcnt_l見つかったバイト数を返す最初のカウントのマルチバイト文字のstrします。_mbsnbcnt and _mbsnbcnt_l return the number of bytes found in the first count of multibyte characters of str. _mbsnccnt_mbsnccnt_l見つかった文字数を返す最初のカウントのバイト数のstrします。_mbsnccnt and _mbsnccnt_l return the number of characters found in the first count of bytes of str. Null 文字が見つかったかどうかは、調査する前にstrが完了すると、バイトの null 文字の前に見つかった文字数を返します。If a null character is encountered before the examination of str has completed, they return the number of bytes or characters found before the null character. 場合strよりも少ない数で構成されています。カウント、文字列内の文字またはバイト数文字またはバイトを返します。If str consists of fewer than count characters or bytes, they return the number of characters or bytes in the string. 場合カウントが小さい 0、0 を返します。If count is less than zero, they return 0. 以前のバージョンでは、これらの関数は、型の戻り値を必要がある。 intなくsize_tします。In previous versions, these functions had a return value of type int rather than size_t.

_strncnt最初の文字の数を返しますカウント1 バイト文字列のバイトstrします。_strncnt returns the number of characters in the first count bytes of the single-byte string str. _wcsncnt最初の文字の数を返しますカウントワイド文字の文字列のワイド文字strします。_wcsncnt returns the number of characters in the first count wide characters of the wide-character string str.

RemarksRemarks

_mbsnbcnt_mbsnbcnt_l見つかったバイト数をカウントする最初のカウントのマルチバイト文字のstrします。_mbsnbcnt and _mbsnbcnt_l count the number of bytes found in the first count of multibyte characters of str. _mbsnbcnt_mbsnbcnt_l置換mtobの代わりに使用する必要がありますとmtobします。_mbsnbcnt and _mbsnbcnt_l replace mtob and should be used in place of mtob.

_mbsnccnt_mbsnccnt_l見つかった文字数をカウントする最初のカウントのバイト数のstrします。_mbsnccnt and _mbsnccnt_l count the number of characters found in the first count of bytes of str. 場合 _mbsnccnt_mbsnccnt_l 2 バイト文字の 2 番目のバイトの null 文字が発生する場合、最初のバイトは null にすることも考慮が返された数の値には含まれません。If _mbsnccnt and _mbsnccnt_l encounter a null character in the second byte of a double-byte character, the first byte is also considered to be null and is not included in the returned count value. _mbsnccnt_mbsnccnt_l置換btomの代わりに使用する必要がありますとbtomします。_mbsnccnt and _mbsnccnt_l replace btom and should be used in place of btom.

場合strは、 NULLポインター、またはカウントが 0 の場合」の説明に従って、これらの関数は無効なパラメーター ハンドラーを呼び出しますパラメーターの検証errnoに設定されているEINVAL関数は 0 を返します。If str is a NULL pointer or is count is 0, these functions invoke the invalid parameter handler as described in Parameter Validation, errno is set to EINVAL, and the function returns 0.

出力値は、ロケールの LC_CTYPE カテゴリの設定に影響されます。詳細については、「setlocale」を参照してください。The output value is affected by the setting of the LC_CTYPE category setting of the locale; see setlocale for more information. _l サフィックスが付いていないこれらの関数のバージョンでは、このロケールに依存する動作に現在のロケールを使用します。_l サフィックスが付いているバージョンは、渡されたロケール パラメーターを代わりに使用する点を除いて同じです。The versions of these functions without the _l suffix use the current locale for this locale-dependent behavior; the versions with the _l suffix are identical except that they use the locale parameter passed in instead. 詳細については、「 Locale」を参照してください。For more information, see Locale.

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

ルーチンによって返される値Routine _UNICODE および _MBCS が未定義の場合_UNICODE and _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_tcsnbcnt_tcsnbcnt _strncnt_strncnt _mbsnbcnt_mbsnbcnt _wcsncnt_wcsncnt
_tcsnccnt_tcsnccnt _strncnt_strncnt _mbsnbcnt_mbsnbcnt 適用なしn/a
_wcsncnt_wcsncnt 適用なしn/a 適用なしn/a _mbsnbcnt_mbsnbcnt
_wcsncnt_wcsncnt 適用なしn/a 適用なしn/a _mbsnccnt_mbsnccnt
適用なしn/a 適用なしn/a _mbsnbcnt_l_mbsnbcnt_l _mbsnccnt_l_mbsnccnt_l

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
_mbsnbcnt_mbsnbcnt <mbstring.h><mbstring.h>
_mbsnbcnt_l_mbsnbcnt_l <mbstring.h><mbstring.h>
_mbsnccnt_mbsnccnt <mbstring.h><mbstring.h>
_mbsnccnt_l_mbsnccnt_l <mbstring.h><mbstring.h>
_strncnt_strncnt <tchar.h><tchar.h>
_wcsncnt_wcsncnt <tchar.h><tchar.h>

互換性の詳細については、「 互換性」を参照してください。For more compatibility information, see Compatibility.

Example

// crt_mbsnbcnt.c

#include  <mbstring.h>
#include  <stdio.h>

int main( void )
{
   unsigned char str[] = "This is a multibyte-character string.";
   unsigned int char_count, byte_count;
   char_count = _mbsnccnt( str, 10 );
   byte_count = _mbsnbcnt( str, 10 );
   if ( byte_count - char_count )
      printf( "The first 10 characters contain %d multibyte characters\n", char_count );
   else
      printf( "The first 10 characters are single-byte.\n");
}

出力Output

The first 10 characters are single-byte.

関連項目See also

文字列操作String Manipulation
ロケールLocale
マルチバイト文字のシーケンスの解釈Interpretation of Multibyte-Character Sequences
_mbsnbcat、_mbsnbcat_l_mbsnbcat, _mbsnbcat_l