Hogyan tudok C-ben txt-fájlban keresni egy megadott szót?
Ezt a problémát én két részre bontanám.
1. Tudj soronként/szavanként haladni.
2. Tudj egyenlőséget ellenőrizni: ez triviális, strcmp.
Az 1. javaslom, hogy úgy ahogy van nyald be az egész szótárfájlt a memóriába egy kétdimenziós tömbbe vagy valami hasonló adatszerkezetbe, mert biztos, hogy elfér, és sokkal gyorsabb lesz.
1. Beolvasod az EGÉSZ fájlt a memóriába.
1.1. Megállapítod, hogy mekkora a fájl (google a barátod, C get file size)
1.2. Foglalsz egy akkora tömböt a memóriában (malloc)
1.3. fread
2. Végigmész a tömbön, megszámolod hány újsor karakter van benne.
3. Foglalsz egy ekkora tömböt, aminek a típusa egy struct, amiben két char* van.
4. Végigmész mégegyszer az eredeti tömbön, és minden újsor után (meg persze a legelején) beraksz a második tömbbe egy új elemet, és ennek az új elemnek a char*-jait beállítod a szópár elemeire: az egyik közvetlenül az újsor után lesz, a másik meg az elválasztókarakter után (azt te tudod, mi).
4.0. Alaphelyzet, hogy egy sor elején vagyunk az egyik tömbben. Van a másik tömb, annak van egy utolsó "berakott" eleme, ez legyen a i.
4.1. Az i. elem első char*-ját beállítjuk arra, ahol most tartunk a tömbben.
4.2. Elmegyünk a szeparátor karakter utánig.
4.3. Az i. elem második char*-ját beállítjuk arra, ahol most tartunk a tömbben.
4.4. Elmegyünk az újsor karakter utánig.
4.5. i-t megnöveljük eggyel.
4.6. Visszatérünk 4.0-ra.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!