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

Wyodrębnianie słów ze zdania i zapisywanie ich do osobnej tablicy

Ostatnio zmodyfikowano 2011-07-10 13:41
Autor Wiadomość
Terminator3
Temat założony przez niniejszego użytkownika
Wyodrębnianie słów ze zdania i zapisywanie ich do osobnej tablicy
» 2011-07-09 20:20:57
Może powiem dokładnie na czym polega problem:
mam jakiś tekst np. "ala ma kota" jest on zapisany w tablicy
char * str;
. Teraz potrzebuję każdego słowa osobno, problem w tym że nie wiem jakiej długości mogą być słowa i ile ich może być, dlatego powinienem chyba użyć
char ** str2;
, ale nie rozumiem tego za bardzo, jak dobrze zarezerwować dana ilość pamięci?
ja to bym zrobił
pętla na zliczenie spacji, rezerwacja pamięci
potem kolejna pętla by zarezerwować pamięć dla pojedynczych tekstów
i trzecia pętla by przepisać tekst z str do odpowiednich str2[0] str2[1] itd.

chodzi mi czy nie da się tego jakoś optymalniej lepiej zrobić ? jest może na to jakaś funkcja w C++ ?
w programie który pisze będzie się liczyła każda milisekunda a robienie tylu pętli jakoś nie wydaje mi się dobrym rozwiązaniem i w ogóle czy to by działało dobrze? bo jeszcze tego nie testowałem
P-35662
kamillo121
» 2011-07-09 20:41:34
To może wrzucaj sobie te teksty do gotowych agregatów gdzie możesz dynamicznie dodawać elementy, skorzystaj może z vector czy czego tam chcesz, będzie Ci łatwiej na początek :)
P-35664
dmx81
» 2011-07-10 13:41:40
jak chcesz z jednej tablicy zawierajacej cale zdania utworzyc wiele tablic, zawierajacej pojedyncze wyrazy, najpierw ustal sobie, czym u ciebie jest wyraz ( a konkretnie, jak rozpoznac koniec wyrazu)
a pozniej bierzesz taka wielka tablice, korzystasz z jakiejs funkcji bibliotecznej,np wczytujacej po jednym znaku, liczysz kazdy przeczytany znak, az do napotkania okreslonej przerwy (spacja, przecinek lub cokolwiek, co sobie ustalisz) - znasz juz liczbe = rozmiar potrzebny dla nowej tablicy, pozniej tworzysz ta tablice, wczytujesz n-1 elementow, zerujesz licznik, lecisz dalej od nowa liczac literki dla kolejnego wyrazu(az do konca pliku, linii lub zalozonego rozmiaru = rozmiaru tablicy z ktorej czytasz)

to tak mniej wiecej,  ale jak kolega wyzej napisal, jesli nie musi to byc koniecznie wlasnorecznie zaprojektowany kontener - uzyj wektorow, list itd, co z pewnoscia bedzie duzo szybsze dla poczatkujacego, latwo dodaje/usuwa sie nowe elementy, nie musisz martwic sie ile pamieci przydzielic
P-35709
« 1 »
  Strona 1 z 1