Treść zadania to " Napisz funkcję strMatch, 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, łańcuchem, znak różny od ’ ?’ i ’*’ oznacza zgod-
ność tylko z samym sobą. Na przykład, strMatch(”*.doc”,s) ma zwracać TRUE
wtedy i tylko wtedy, gdy napis s jest postaci ”xxxxx.doc” oraz strMatch(”a???”,s)
ma zwracać TRUE wtedy i tylko wtedy, gdy s ma długość 4 i zaczyna się od
litery ’a’."
Ogólnie program nie jest trudny, ale mam problem z pustym łańcuchem znaków. Jak nic nie wpiszę ( terminal linux) tylko poprostu nacisnę ENTER to program nadal czeka na to abym wpisał coś. Może ma ktoś pomysł co zrobić z tym pustym łańcuchem?-- 28 gru 2011, o 21:24 --Próbowałem coś z kodami ASCII, ale nic nie szło
[c] porównywanie ze wzorcem
- piti-n
- Użytkownik
- Posty: 534
- Rejestracja: 24 gru 2010, o 22:42
- Płeć: Mężczyzna
- Lokalizacja: Wroclaw
- Podziękował: 41 razy
- Pomógł: 45 razy
[c] porównywanie ze wzorcem
Raczej nie o to. Chodzi o algorytm, a nie o przerwanie działania programu. Chodzi o to żeby po wpisaniu wzorca 'qwerty' i później łańcucha do porównania ' ' (pusty) to wyskakiwało błąd a nie oczekiwało na wpisanie czegoś.
-- 28 gru 2011, o 22:14 --
Według mnie powinien być jakiś if przyrównujący łańcuch do jakiejś wartości, ale nie wiem jakiej
-- 28 gru 2011, o 22:14 --
Według mnie powinien być jakiś if przyrównujący łańcuch do jakiejś wartości, ale nie wiem jakiej
[c] porównywanie ze wzorcem
A, rozumiem, implementacja elementarnych wyrażeń regularnych.
Kiedy naciskasz ENTER to otrzymujesz znak nowej linii ('\n') ale chyba nie o to chodzi?
Kiedy naciskasz ENTER to otrzymujesz znak nowej linii ('\n') ale chyba nie o to chodzi?
- piti-n
- Użytkownik
- Posty: 534
- Rejestracja: 24 gru 2010, o 22:42
- Płeć: Mężczyzna
- Lokalizacja: Wroclaw
- Podziękował: 41 razy
- Pomógł: 45 razy
[c] porównywanie ze wzorcem
Tak, po naciśnięciu ENTER powinno przyjmować to jako łańcuch pusty-- 28 gru 2011, o 22:50 --Jak rozumię powinienem poczytać o elementarnych wyrażeń regularnych. To klucz do rozwiązania tego zadania?
-
- Moderator
- Posty: 2828
- Rejestracja: 15 cze 2008, o 15:45
- Płeć: Mężczyzna
- Lokalizacja: Seattle, WA
- Podziękował: 3 razy
- Pomógł: 356 razy
[c] porównywanie ze wzorcem
No pusty łańcuch, czyli nic nie udało się wczytać. A dlaczego nic się nie wczytało? Bo napotkało się eof. Albo wczytuj do znaku nowej linii i po sprawie.piti-n pisze:Chodzi o to żeby po wpisaniu wzorca 'qwerty' i później łańcucha do porównania ' ' (pusty) to wyskakiwało błąd a nie oczekiwało na wpisanie czegoś.
[c] porównywanie ze wzorcem
A o prawdziwych wyrażeniach regularnych też nie zaszkodzi poczytać - poniekąd funkcja, którą implementujesz ma je interpretować.