_mbsnbcnt、_mbsnccnt、_strncnt、_wcsncnt
string.h:インデックス への移動
ヘッダー ファイル
mbstring.h
カテゴリ
メモリおよび文字列操作ルーチン
プロトタイプ
size_t _mbsnbcnt(const unsigned char * str, size_t nmbc);
size_t _mbsnccnt(const unsigned char * str, size_t nbyte);
説明
_MBCS が定義されている場合:
- _mbsnbcnt は、移植性のあるマクロ _tcsnbcnt にマッピングされます。
- _mbsnccnt は、移植性のあるマクロ _tcsnccnt にマッピングされます。
_UNICODE が定義されている場合:
- _mbsnbcnt も _mbsnccnt も _wcsncnt マクロにマッピングされます。
_MBCS も _UNICODE も定義されていない場合、_tcsnbcnt と _tcsnccnt は _strncnt マクロにマッピングされます。 _strncnt はこれらの関数のシングルバイト バージョンで、_wcsncnt はこれらの関数のワイド文字バージョンです。 _strncnt と _wcsncnt は汎用テキスト マッピングの場合のみ使用できます。 これらを直接使用しないでください。
_mbsnbcnt は、str
引数の先頭のマルチバイト nmbc
文字を調べます。 そして、それらの文字で占有されるバイト数を返します。
_mbsnccnt は、str
引数の先頭の nbyte
バイトを調べます。 そして、それらのバイトに含まれている文字数を返します。 マルチバイト文字の第 2 バイトが NULL であった場合は、その文字全体が NULL と見なされ、戻り値には含まれません。
指定された文字数またはバイト数を調べ終わらないうちに NULL に達した場合、これらの関数はそこで str 引数の検査を終了します。
str
引数内の文字列の文字数またはバイト数が指定された数より少ない場合、関数は、str
に含まれている文字数またはバイト数を返します。
戻り値
_mbsnbcnt は、検出されたバイト数を返します。
_mbsnccnt は、検出された文字数を返します。
nmbc または nbyte がゼロ未満の場合、これらの関数は 0 を返します。
例
# include <mbstring.h>
# include <iostream>
using namespace std;
int main()
{
unsigned char str[]="Hello world! ";
int n_charact, n_byte;
n_byte=_mbsnbcnt(str, 5);
n_charact=_mbsnccnt(str, 5);
cout<<"The first 5 multibyte characters of \""<<str<<"\" contain "<<n_byte<<" bytes."<<endl;
cout<<"The first 5 bytes of \""<<str<<"\" contain "<<n_charact<<" characters."<<endl;
return 0;
}