У меня странное чувство дежавю, как будто я уже читал вот буквально на днях про бейсиковское Like и другой язык программирования. А что делает эта функция, если не секрет?
Проверяет две строки по маске. Например: "*.exe" Like "example.exe"; return true "*.exe" Like "example.doc"; retrun false
Мой коментарий потерли, но я все-равно повторю. На вопрос "как" тебе ответили - алгоритм тебе дали, реализовывай на каком хочешь языке. Ты видимо плохо знаешь русский язык и потому случайно по ошибке написал "как" вместо "сделайте все за меня и дайте готовый код, а то мне впадлу что-то самому делать".
можно расковырять си-функцию strstr(char *str, char *substr), которая ищет подстроку в строке. в педиивики на странице "Список алгоритмов" кроме всего прочего есть описание сабжевого алгоритма.
Поиск подстроки при такой постановке задачи не является решением. strstr("example.exe","*.exe") вернёт ноль, а судя по описанию автора должна быть единица. К тому же маски вида "ex?mp*.exe" при помощи strstr() не очень то удобно искать. В общем автор и тут и на cracklab пишет про свой like - а что это такое нигде не описывает. Вроди все кругом Visual Basic знают. Какая задача вообще?
Great можно убрать звездочку. Code (Text): if (strstr("blabla.exe", ".exe")) printf("ok\n"); else printf("ололо!!\n"); выведет "ok\n"
Microedition Ну, блин. strstr ("blabla.exe", "aa*.exe") тут тоже уберешь звездочку? или все-таки, наконец, прекратишь стебаться) очевидно же, что * это маска
Microedition если только звездочка и вопросик, то ничего сложного. берем первую часть маски от начала и до конца | звездочки | вопросика (что раньше) и стрстр ее. потом, если вопросик, то один пропускаем и проверяем следующую часть, если есть, на совпадение, если совпадает - дальше, нет - сначала маски, но со сдвигом начала в строке поиска. звездочка - выделяем очередную определенную часть маски и снова стрстр. итд с регехами все сложнее. даж небольшие компиляторы пишут. чаще жит, но иногда и сталоне.
Если для однозвездочковых , то эскиз такой (оч упрощенно) mov edi,buf1 ; "stolovaya" mov esi,tag ; "st*a" cld mov edx,LEN_OF_TAG l1: lodsb or al,al jz jex1 cmp al,'*' jz jzv scasb jnz jfex loop l1 ...... jzv: sub edx,ecx ; left in tag xchg edx,ecx l2: p edi p esi call lstrcmp jz jok inc edi loop l2 jfex: printf FUCK! not found jok: PRINTF OKEY,O-BEE!