wcwidth ()- 确定宽字符的显示宽度

格式

#include <wchar.h>
int wcwidth (const wint_t wc);

语言级别

XPG4

线程安全

语言环境敏感

此函数的行为可能受当前语言环境的 LC_CTYPE 类别影响。 如果在编译命令中指定了 LOCALETYPE (*LOCALEUCS2) 或 LOCALETYPE (*LOCALEUTF) ,那么此行为也可能受当前语言环境的 LC_UNI_CTYPE 类别影响。 当在编译命令上指定 LOCALETYPE (*CLD) 时,此功能不可用。 有关更多信息,请参阅 了解 CCSID 和语言环境

宽字符函数

有关更多信息,请参阅 宽字符

描述

wcwidth() 函数确定 wc 图形表示法在显示设备上占据的打印位置数。 每个打印宽字符在显示设备上占据其自己的打印位置数。 该数字与其在设备上的位置无关。

errno 的值可以设置为 EINVAL (非打印宽字符)。

返回值

wcwidth() 函数返回:
  • 0 ,如果 wc 是空宽字符; 或者
  • wc占用的打印位置数; 或
  • -1,如果 wc 不是打印宽字符。

示例

#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
    **************************************************************************/

相关信息