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

相關資訊