C Standard Library

C <wchar.h> - wctob() Function



The C <wchar.h> wctob() function narrows a wide character wc to its single-byte character equivalent only if wc represents a multibyte character with length 1 in initial shift state, otherwise returns EOF.

Syntax

int wctob (wint_t wc);        

Parameters

wc Specify the wide character to narrow.

Return Value

Returns single-byte character representation of wc if wc represents a multibyte character with length 1 in initial shift state, otherwise returns EOF.

Example:

The example below shows the usage of wctob() function.

#include <wchar.h>
#include <stdio.h>
 
void try_narrowing(wchar_t wc) {
  int c = wctob(wc);
  
  //EOF is used to check whether the widening of 
  //character was successful or not
  if(c != EOF)
    wprintf(L"Wide character %#x narrowed to %#x\n", wc, c);
  else
    wprintf(L"Wide character %#x failed to be narrowed\n", wc);
}

int main (){
  try_narrowing(L'A');
  try_narrowing(L'\t');
  try_narrowing(0x61);
  try_narrowing(0xe5b);
  return 0;
}

The output of the above code will be:

Wide character 0x41 narrowed to 0x41
Wide character 0x9 narrowed to 0x9
Wide character 0x61 narrowed to 0x61
Wide character 0xe5b failed to be narrowed

❮ C <wchar.h> Library