Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Dziele napisu na wyrazy z użyciem char.

Ostatnio zmodyfikowano 2014-03-22 21:57
Autor Wiadomość
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?
P-107023
pekfos
» 2014-03-22 19:56:58
"ab1c123def" z separatorem "123" ma być rozdzielony na "ab1c def", czy "ab c def"?
P-107025
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
P-107029
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.
P-107032
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.
P-107033
1 « 2 »
Poprzednia strona Strona 2 z 2