//*********************************************************
// string1 と string2 を比較し、文字列の順序関係が
// string1 == string2 であれば0を
// string1 > string2 であれば正を
// string1 < string2 であれば負を
// それぞれ返します。
// 関数 strcmpi() の返す順序関係と関数 strcmp() の返す順序関係とは一致しません。
// この関数は大文字と小文字を区別しません。
//*********************************************************
int
strcmpi
(
const char *string1,
const char *string2
)
{
// 最初の不一致文字を見つける。
const char *p, *q;
{for( p = string1, q = string2;
tolower((unsigned char)*p) == tolower((unsigned char)*q);
++p, ++q )
{
// 両文字列が終端に達した。
if ( '\0' == *p )
{
return 0;
}
}}
// 不一致文字間の大小関係を返す。
return (unsigned char *)tolower((unsigned char)*p) > (unsigned char *)tolower((unsigned char)*q)
? 1 : -1;
}//strcmpi
//********************************************************* // string1 と string2 を最大で num 文字まで比較し、文字列の順序関係が // string1 == string2 であれば0を // string1 > string2 であれば正を // string1 < string2 であれば負を // それぞれ返します。 // 関数 strncmpi() の返す順序関係と関数 strncmp() の返す順序関係とは一致しません。 // この関数は大文字と小文字を区別しません。 //********************************************************* int strncmpi ( const char *string1, const char *string2, size_t num ) { // 0 文字比較で不一致文字は見つからない。 if ( 0 == num ) { return 0; } // 最初の不一致文字を見つける。 const char *p, *q; {for( p = string1, q = string2; tolower((unsigned char)*p) == tolower((unsigned char)*q); ++p, ++q ) { // 文字列が終端に達したか、指定文字数の比較が終了した。 if ( ('\0' == *p) || (num-1 <= (size_t)(p - string1)) ) { return 0; } }} // 不一致文字間の大小関係を返す。 return (unsigned char *)tolower((unsigned char)*p) > (unsigned char *)tolower((unsigned char)*q) ? 1 : -1; }//strncmpi 関連 |
|
水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp

同人ダウンロード販売|DL.Getchu.com