Napisałem program z Symfonii C++ Standard, wyd. 3 z 2008r, ćwiczenie XVIII/217, w skrócie: mamy w tablicy jakiś tekst i mamy napisać funkcję rozdzielającą poszczególne wyrazy do tablicy z nieparzystymi wyrazami i parzystymi, w obu przypadkach oddzielonymi spacją.
Jak zwykle będę wdzięczny za uwagi, spostrzeżenia, komentarze i wskazówki.
Ćwiczenie było po rozdziale o tablicach, więc nie piszcie o żadnych vectorach, klasach itp
Owszem, książka podaje te funkcje, ale w dalszych rozdziałach, a w tych ćwiczeniach zaraz po tablicach, nie chodzi o to, żeby używać gotowych funkcji, ale zrobić coś swojego. Nikt nigdy nie będzie dobrym programista, jeżeli będzie używał tylko gotowych rozwiązań. Z resztą temat nie wskazuje jednoznacznie na CIĄG ZNAKÓW, a taki nie zawsze jest stringiem, jeśli patrząc na string jako odrębną klasę.
A co do rozwiązania, porównujesz po kolej każdy znak, zapisując odczytane znaki do tej pory do tablicy z wyrazami nieparzystymi, jeśli napotkasz spację, albo ich kilka, tudzież białe znaki, to przechodzisz na drugą tablicę i do niej zapisujesz już następny wyraz. Jedno z wielu rozwiązań stworzone na poczekaniu
Jeżeli nie poradzisz sobie, to jakimś kodem zarzucę.
Słusznie. Jeżeli na początku będą spacje, to program powinien je ignorować, a jeżeli pomiędzy wyrazami będzie więcej niż jedna spacja, to program powinien traktować je jako jedną, tzn czekać na znak inny niż ASCII 32, dobrze myślę?
A co, mój kod niedobry? Jak naprawię te 2 bugi, o których wspomniał [alex], to powinno być ok?