wcsncmp ()- 比较宽字符字符串

格式

#include <wchar.h>
int wcsncmp(const wchar_t *string1, const wchar_t *string2, size_t count);

语言级别

XPG4

线程安全

宽字符函数

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

描述

wcsncmp() 函数将 string1 中的 count 个宽字符与 string2进行比较。

wcsncmp() 函数对空结束的宽字符字符串进行操作; 此函数的字符串自变量应包含标记字符串结束的 wchar_t 空字符。

返回值

wcsncmp() 函数返回一个值,指示两个字符串之间的关系,如下所示:

表 1. wcsncmp() 的返回值
含义
小于 0 string1 小于 string2
0 string1string2 相同
大于 0 string1 大于 string2

示例

此示例演示了 wcscmp() 函数 (用于比较整个字符串) 与 wcsncmp() 函数 (仅比较字符串中指定数量的宽字符) 之间的差异。
#include <stdio.h>
#include <wchar.h>
 
#define SIZE 10
 
int main(void)
{
  int  result;
  int  index = 3;
  wchar_t buffer1[SIZE] = L"abcdefg";
  wchar_t buffer2[SIZE] = L"abcfg";
  void print_result( int, wchar_t *, wchar_t * );
 
  result = wcscmp( buffer1, buffer2 );
  printf( "Comparison of each character\n" );
  printf( "  wcscmp: " );
  print_result( result, buffer1, buffer2 );
 
  result = wcsncmp( buffer1, buffer2, index);
  printf( "\nComparison of only the first %i characters\n", index );
  printf( "  wcsncmp: " );
  print_result( result, buffer1, buffer2 );
}
 
void print_result( int res, wchar_t * p_buffer1, wchar_t * p_buffer2 )
{
  if ( res == 0 )
    printf( "\"%ls\" is identical to \"%ls\"\n", p_buffer1, p_buffer2);
  else if ( res < 0 )
    printf( "\"%ls\" is less than \"%ls\"\n", p_buffer1, p_buffer2 );
  else
    printf( "\"%ls\" is greater than \"%ls\"\n", p_buffer1, p_buffer2 );
}
/****************  Output should be similar to: ******************
 
Comparison of each character
  wcscmp: "abcdefg" is less than "abcfg"
 
Comparison of only the first 3 characters
  wcsncmp: "abcdefg" is identical to "abcfg"
*/

相关信息