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

格式

#include <wchar.h>
int wcswidth (const wchar_t *wcs, size_t n);

语言级别

XPG4

线程安全

语言环境敏感

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

宽字符函数

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

描述

wcswidth() 函数确定显示设备上由 wcs 指向的宽字符串中的 n 宽字符 (如果在 n 宽字符耗尽之前迂到空宽字符,那么小于 n 宽字符) 的图形表示占用的打印位置数。 该数字与其在设备上的位置无关。

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

返回值

wcswidth() 函数返回:
  • 0 ,如果 wcs 指向空的宽字符; 或者
  • wcs指向的宽字符串占用的打印位置数; 或
  • -1,如果 wcs 指向的宽字符串中的任何宽字符不是打印宽字符。

示例

#include <stdio.h>
#include <wchar.h>
 
int main(void)
{
   wchar_t *wcs = L"ABC";
 
   printf("wcs has a width of: %d\n", wcswidth(wcs,3));
}
 
/************The output is as follows**************/
/*                                                */
/*                wcs has a width of: 3           */
/*                                                */
/**************************************************/

相关信息