Здравствуйте, Аноним, Вы писали:
А>Привет всем!
А>вот такая задача!
А>есть шаблон (как при поиске файлов) "*ABC??FG*.*" например
А>какие функции есть что бы сравнить строку с этим шаблоном и сказать сравнимо или нет?
А>функция("*ABC??FG*.*","343ABC99FG776erefe.hh") -> истина, а
А>функция("*ABC??FG*.*","343ABC9FG776erefe.hh") -> ложь
А>или все руками писать!
А>Спасибо!
return 0 if no match
int wildcmp(const char *wild, const char *string)
{
const char *cp, *mp;
while ((*string) && (*wild != '*'))
{
if ((*wild != *string) && (*wild != '?'))
return 0;
wild++;
string++;
}
while (*string)
{
if (*wild == '*')
{
if (!*++wild)
return 1;
mp = wild;
cp = string+1;
}
else if ((*wild == *string) || (*wild == '?'))
{
wild++;
string++;
}
else
{
wild = mp;
string = cp++;
}
}
while (*wild == '*')
wild++;
return !*wild;
}