_ismbblead, _ismbbtrail

From RAD Studio
Jump to: navigation, search

Go Up to string.h Index


Header File

mbstring.h

Category

Classification Routines

Prototype

int _ismbblead(unsigned int c);

int _ismbbtrail(unsigned int c);

Description

_ismbblead and _ismbbtrail are used to test whether the argument c is the first or the second byte of a multibyte character.

_ismbblead and _ismbbtrail are affected by the code page in use. You can set the code page by using the _setlocale function.

Return Value

If c is in the lead byte of a multibyte character, _ismbblead returns true.

If c is in the trail byte of a multibyte character, _ismbbtrail returns a nonzero value.

Example

#include <mbstring.h>

bool checkMBCSString(char* input)
{
  /* Check if the given MBCS sequence is correct */
  bool wasLead = false;
  while (*input)
  {
    if (_ismbblead(*input))
      wasLead = true;
    else if (_ismbbtrail(*input))
    {
      /* Check that a trail char should follow the lead one */
      if (!wasLead)
        return false;
      else
        wasLead = false;
    }

    input++;
  }

  /* The check succeeded if the last byte in the sequence was not a lead one */
  return !wasLead;
}