Hej!
Chcę napisać program, który będzie wykonywał 2 operacje na tekście (zapisanym w pliku txt). Celem tego projektu jest "doświadczalne sprawdzenie założenia, że tekst jest czytelny nawet jeżeli litery w słowach są poprzestawiane o ile pierwsza i ostatnia litera pozostanie bez zmian" :
- Ma zostawiać pierwszą i ostatnią literę w każdym słowie bez zmian, natomiast wszystkie w środku musi przestawiać w sposób losowy.
- Zamienia tylko pierwszą i ostatnią literę każdego słowa ze sobą.
- dodatkowo zmieniony tekst ma być zapisany w tym samym pliku co oryginalny, nie należy tworzyć dodatkowych plików pomocniczych i nie można wczytywać zawartości całego pliku na raz do pamięci np. do tablicy.
Mam w związku z tym wstępną koncepcję, ale nie do końca wiem czy dobrze myślę, więc doszłam do wniosku że zapytam ludzi, którzy śmigają w cpp.
Myślę, że stworzę 2 pliki tekstowe z tym samym tekstem. Przy pierwszym myślałam, żeby wczytać tekst jako string, następnie podzielić go jakąś funkcją typu "split string" pomiędzy spacjami, coś tam pokombinuję ze znakami przestankowymi i każde z nich wpiszę jako kolejny element w dynamicznej liście typu string. Potem prześlę tą listę do funkcji która będzie zamieniała każdy string na char'a, po czym zostawi pierwszą i ostatnią literę, a zamieni te w środku - nie bardzo wiem jak to zdefiniować w kodzie - pewnie najpierw, gdy jeszcze słowo będzie string'iem, trzeba by policzyć jego długość, wpisać w jakąś zmienną k, może nawet stworzyć listę par typu (string, int) zamiast samego stringa....? I potem użyć indeksów znaków każdego char'a, srand time itp. Następnie chyba wpiszę te zmanipulowane char'y z powrotem do stringów i do listy i dodam do pliku w trybie app.
Jeśli chodzi o drugą operację - analogicznie do poprzedniej, tylko prościej, bo nie będzie tutaj losowości.
Ta koncepcja wydaje mi się trochę pokrętna i zastanawiam się czy nie można tego zrobić krócej....
Pozdrawiam serdecznie i z góry dziękuję za wszelkie pomysły!