標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
ISO C 改訂 |
両方 |
#include <wchar.h>
int wcsncmp(const wchar_t *string1, const wchar_t *string2, size_t count);
string1 から string2 間の最大の count ワイド文字までを比較します。wcsncmp() 関数は、NULL 文字で終了するワイド文字ストリングを操作します。この関数に対するストリング引数には、ストリングの終わりにマークを 付ける NULL ワイド文字が入っていなければなりません。
このワイド文字関数の動作は、現行ロケールの LC_CTYPE カテゴリーの影響を受けます。 カテゴリーを変更すると、未定義の結果が発生する可能性があります。
⁄* CELEBW14
This example demonstrates the difference between &wcscmp.
and &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 );
}
Comparison of each character
wcscmp: "abcdefg" is less than "abcfg"
Comparison of only the first 3 characters
wcsncmp: "abcdefg" is identical to "abcfg"