wcwidth() — Determine the Display Width of a Wide Character
Format
#include <wchar.h>
int wcwidth (const wint_t wc);
Language Level
XPG4
Threadsafe
Yes
Locale Sensitive
The behavior of this function might be affected by the LC_CTYPE category of the current locale. The behavior might also be affected by the LC_UNI_CTYPE category of the current locale if LOCALETYPE(*LOCALEUCS2) or LOCALETYPE(*LOCALEUTF) is specified on the compilation command. This function is not available when LOCALETYPE(*CLD) is specified on the compilation command. For more information, see Understanding CCSIDs and Locales.
Wide Character Function
See Wide Characters for more information.
Description
The wcwidth()
function
determines the number of printing positions that a graphic representation
of wc occupies on a display device. Each of the printing wide
characters occupies its own number of printing positions on a display
device. The number is independent of its location on the device.
The value of errno
may be set to EINVAL (non-printing
wide character).
Return Value
wcwidth()
function
either returns: - 0, if wc is a null wide character; or
- the number of printing position occupied by wc; or
- -1, if wc is not a printing wide character.
Example
#include <stdio.h>
#include <wchar.h>
int main(void)
{
wint_t wc = L'A';
printf("%lc has a width of %d\n", wc, wcwidth(wc));
return 0;
}
/**************************************************************************
The output should be similar to :
A has a width of 1
**************************************************************************/