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