[C++] Dziele napisu na wyrazy z użyciem char.
Ostatnio zmodyfikowano 2014-03-22 21:57
Malina94 Temat założony przez niniejszego użytkownika |
» 2014-03-22 17:56:25 Hmm... to spróbuję wykorzystać pierwszy pomysł. Ogólnie mam zakazane używanie plików nagłówkowych "string" i "string.h". Nie wiem co by było przy cstringu, bo mój kod będzie analizowany przez środowisko testowe.
EDIT: Po przemyśleniu funkcji stryka nie wiem jednak jak to należycie wykorzystać. Na wejściu mogę wprowadzić tylko ten nierozdzielony wyraz oraz separator. Program ma mi to zmielić i wyrzucić już rozdzielone słowo. Czyli zakładam, że w separatorze są znaki, które znajdują się również w pierwszym ciągu znaków i nie muszę rozpatrywać takiego przypadku. Dlatego też próbowałam stworzyć fory, które oblatują dwie tablice, np. para: abc123def separator: 123 gdzie dla każdej litery w parze, oblatywałby cały separator w określeniu czy oba znaki są równe (czy a == 1? czy a == 2? czy a==3?), a jeśli nie, to przepisywałby mi to 'a' do nowej tablicy, którą chciałam wyświetlić na wyjściu, i robił to samo z 'b'. Ale jak widać nie umiem tego dobrze zaimplementować + nie wiem, czy w ogóle dobrze główkuję. :) Więc właśnie, czy ogólnie jest to dobra idea? |
|
pekfos |
» 2014-03-22 19:56:58 "ab1c123def" z separatorem "123" ma być rozdzielony na "ab1c def", czy "ab c def"? |
|
Malina94 Temat założony przez niniejszego użytkownika |
» 2014-03-22 20:24:57 Nie mam pewności, ale chyba druga opcja - tak wnioskuję po przykładach zadanych pod ćwiczeniem. Jeden z nich, który pominęłam przy opisie zadania: wejście 123abc456gfed789 abcdefghijklmnopqrstuvwxyz
wyjście 123 456 789 |
|
michal11 |
» 2014-03-22 21:46:37 A może przeleć wejście po kolei i zamieniaj każdy znak z separatora na spacje a na koniec usuń nadmiarowe spacje, no chyba, że to nie problem. |
|
pekfos |
» 2014-03-22 21:57:12 Utwórz tablicę 256 booli, ustaw wszystkie na false, a następnie każdy znak z separatora potraktuj jak indeks i powstawiaj tam true. Rozmiar tablicy można zmniejszyć, ale tak jest najprościej. Całe zastępowanie to tylko sprawdzanie, czy pod aktualnym znakiem w tablicy stoi true - wtedy wypisujesz spację i ustawiasz jakąś zmienną X (również bool) na true. Jeśli X już jest ustawiona, to niczego nie wypisujesz. Jeśli pod aktualnym znakiem w tablicy stoi false, ustawiasz, wcześniej wspomnianą, zmienną X na false i wypisujesz aktualny znak. Złożoność O(n+m). Lepiej się nie tu da. |
|
1 « 2 » |