Язык программирования Си


         

typedef unsigned char uchar;


- 322 - Си в UNIX

#include <stdio.h> #include <ctype.h> #include <locale.h>

typedef unsigned char uchar; #define ANYCHAR '*' /* символ, сопоставляющийся с одной любой буквой */

static uchar version[120]; /* буфер для генерации вариантов */ static uchar vv; /* буква, сопоставившаяся с ANYCHAR */

/* привести все буквы к одному регистру */ static uchar icase(uchar c){ return isupper(c) ? tolower(c) : c; }

/* сравнение строк с игнорированием регистра */ static int eqi(uchar *s1, uchar *s2 ) { while( *s1 && *s2 ){ if( icase( *s1 ) != icase( *s2 )) break; s1++; s2++; } return ( ! *s1 && ! *s2 ) ? 1 : 0 ; /* OK : FAIL */ }

/* сравнение строк с игнорированием ANYCHAR */ static strok(register uchar *word, register uchar *pat) { while( *word && *pat ){ if( *word == ANYCHAR){ /* Неважно, что есть *pat, но запомним */ vv= *pat; } else { if( icase(*pat) != icase(*word) ) break; } word++; pat++; } /* если слова кончились одновременно ... */ return ( !*word && !*pat) ? 1 : 0; /* OK : FAIL */ }



Содержание  Назад  Вперед