Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

[C++] Podział stringu na wyrazy parzyste i nieparzyste

Moderatorzy: Jacek Bogusz, Moderatorzy

Awatar użytkownika
Darlington
-
-
Posty: 574
Rejestracja: 12 lis 2007, o 18:18
Lokalizacja: stąd!

[C++] Podział stringu na wyrazy parzyste i nieparzyste

Postautor: Darlington » 14 lip 2009, o 21:29

Witam.
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 ;)

Kod: Zaznacz cały

#include <iostream> using namespace std; void grupuj(char zrodlo[], char parz[], char nieparz[]); int rozmiar(char zrodlo[]); int main() { char tablica[]={"Symfonia C++ to najlepsza ksiazka na poczatek przygody z jezykiem C++ moim zdaniem"}; // dany string char nieparzyste[80]={}; // wstepne zerowanie char parzyste[80]={}; // -||- grupuj(tablica, parzyste, nieparzyste); //here we go ;) cout << tablica << "\nRozmiar stringu: " << rozmiar(tablica) << "\n\n\nNieparzyste:" << endl; for(int i=0; i<80; i++) // wypisanie wyrazow nieparzystych { cout << nieparzyste[i]; } cout << endl << "Parzyste:" << endl; for(int i=0; i<80; i++) // wypisanie wyrazow parzystych { cout << parzyste[i]; } cout << "\n\n\n"; return 0; } //********************************************************************* // funkcja grupujaca w parzyste i nieparzyste wyrazy oddzielone spacja: //********************************************************************* void grupuj(char zrodlo[], char parz[], char nieparz[]) { int licznik_sp=1,indeks_nieparz=0, indeks_parz=0, size=rozmiar(zrodlo); for(int i=0; i<size; i++) // petla po literach stringu { if(licznik_sp%2) // sprawdzamy parzystosc/nieparzystosc liczby dotychczasowych spacji { nieparz[indeks_nieparz++]=zrodlo[i]; } else { parz[indeks_parz++]=zrodlo[i]; } if(zrodlo[i]==32) ++licznik_sp; // spacja! nastepny wyraz! (kod ASCII spacji to 32) } } //********************************************************************* //funkcja zwracajaca rozmiar stringu w tablicy zrodlowej: //********************************************************************* int rozmiar(char zrodlo[]) { int rezultat=0,i=0; while(zrodlo[i++]) ++rezultat; //dopoki istnieja jakies litery w danym stringu, zwiekszaj licznik return rezultat; }

Wróć do „PLD/FPGA i inne zagadnienia techniki cyfrowej”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 10 gości