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