:: reverse dictionary ::
※ソースファイルについて
文字列の一部を辞書式の順序で比較するには、strncmp 関数を使います。
#include <string.h>
char str[] = "C Program"; int cmpe, cmpm, cmpp; cmpe = strncmp(str, "C Project", 5); cmpm = strncmp(str, "C Project", 6); cmpp = strncmp(str, "C PROJECT", 4);
cmpe は 0 、cmpm は -1 、cmpp は 1 になります。
ワイド文字列の場合は wcsncmp 関数を使います。
#include <locale.h> #include <string.h>
wchar_t str[] = L"Cプログラム"; int cmpe, cmpm, cmpp; setlocale(LC_ALL, "ja"); /* ロケールを日本語に設定 */ cmpe = wcsncmp(str, L"Cプロジェクト", 3); cmpm = wcsncmp(str, L"Cプロジェクト", 4); cmpp = wcsncmp(str, L"Cプラスプラス", 3);
cmpe は 0 、cmpm は -8 、cmpp は 4 になります。
int strncmp(const char *sa, const char *sb, size_t sz) int wcsncmp(const wchar_t *sa, const wchar_t *sb, size_t sz)
文字列 sa と文字列 sb の一部を辞書式の順序で比較します。
strncmp は sz バイト分、wcsncmp は sz 文字分の文字列を比較します。
文字列 sa が文字列 sb と等しい場合は 0、文字列 sa が文字列 sb より小さい場合は -1 以下の値、文字列 sa が文字列 sb より大きい場合は 1 以上の値を返します。
sa … 比較する文字列
sb … 比較する文字列
sz … 比較する長さ(strncmp はバイト数、wcsncmp は文字数)
・文字列 sa が文字列 sb と等しい … 0
・文字列 sa が文字列 sb より小さい( sa < sb ) … -1 以下(負)
・文字列 sa が文字列 sb より大きい( sa > sb ) … 1 以上(正)
Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com