Łańcuch znaków

0

Witam, mam za zadanie napisać ten program:

Napisz funkcję match(char* wzorzec, char* łańcuch), która ustala zgodność wzorca z
łańcuchem. Znak ’ ?’ we wzorcu oznacza zgodność z dowolnym innym znakiem. Znak
’ oznacza zgodność z dowolnym, również pustym, ciągiem znaków w łańcuchu.
Znak różny od ’ ?’ i ’
’ oznacza zgodność tylko z samym sobą.
Na przykład
• match(”.doc”,s) ma zwracać true wtedy i tylko wtedy, gdy napis s jest ciągiem
dowolnych znaków z czterema ostatnimi znakami ’.doc’
• match(”a???”,s) ma zwracać true wtedy i tylko wtedy, gdy s ma długość 4 i
zaczyna się od litery ’a’
• match("a
bbc", s) ma zwracać true wtedy i tylko wtedy, gdy napis s zaczyna
się od litery ’a’ i kończy się literą ’c’ a między nimi znajdują się przynajmniej
dwie litery ’b’ (niekoniecznie obok siebie)

No i napisałem go, ale teraz potrzebuje obiektywnego oka które mogło by podać mi taki przykład, na którym mój program się "wyłoży".

  1. gdy wpisuje jak wzór: " *.doc " , a jako łańcuch np: "iabuewbiw.doc" to zgadza się
  2. gdy wpisuje jak wzór: "a???" , a jako łańcuch np: "ahdw" działa poprawnie, jeżeli dam w tym wzzorcu coś dłuższego np"ahdwwww" to poprawnie zwraca "false"
  3. gdy wpisuje jak wzór: "abb*c" a jako łańcuch np: "a b b c" poprawnie wskazuje "true"
    Mogłem pominąć jakiś przypadek?
    Nie chcę się wyłożyć na jakimkolwiek przykładzie.
    Za rady z góry dziękuję!
0

Jaki znak oznacza zgodność z dowolnym, również pustym, ciągiem znaków w łańcuchu? Pusty? "''", nie lepiej ustalić taki znak jako "*"? Byłoby lepiej widać. Pokaż coś więcej kodu, jak to Robiłeś Regexami?

1 użytkowników online, w tym zalogowanych: 0, gości: 1