Kezdőoldal » Számítástechnika » Programozás » C-ben hogyan kell egy egész...

C-ben hogyan kell egy egész szót scannelni?

Figyelt kérdés

pl egy fájlban van ez a két szó : GSAGa

SGAGASDDS


És ezt a kettőt szeretném scannelni. Ezt a parancsot használtam : char c; c=getc(fr) de így csak az első betűt scannelte, nekem pedig az egész szó kell (illetve mind2).


Próbáltam rákeresni, de csak olyan programokat találtam amiben számomra nagyon sok dolog nem világos. Van ennek vmi egyszerű módja?



2014. nov. 1. 18:51
 1/7 anonim ***** válasza:
szkenneld be egyesével a betűket, és ciklusokban vizsgáld az egyezést a keresett szavakkal.
2014. nov. 1. 19:11
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:

igen most már megvan, ezzel a parancsal :

while ((c = getc(fw)) != EOF)


Most viszont egy másik dologban kéne a segítség. A feladat az, hogy egy file-ban le kell szkennelni a mondatot, és bizonyos karaktereknél meg kiírni egy mondatot. Tehát pl a fájlban van hogy :

ASF%FS%SFA


Tehát pl ha A-betűt talál akkor kírja h "kutya" ha % -jelet a akkor "macska" . A teljes kiírás tehát így nézne ki: kutya macska macska kutya


Ezzel próbálkoztam:

while ((c = getc(fw)) != EOF)

if (c=='A') {printf("kutya");}

if (c=='%') {printf("macska");}


Ezt próbáltam mindehogyan variálni, de a legjobb eredmény is csak az volt, hogy kiírta ha pl "kutya macska" de aztán hiába fordult még elő többször az a karakter, nem írta ki mégegyszer.


Erre vmi megoldás?

2014. nov. 2. 02:11
 3/7 anonim ***** válasza:

A while utáni rész kapcsos zárójelek között van?


while(){

az ifes rész itt van

}

2014. nov. 2. 07:28
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:
Igen, ugy is probaltam, ahogy mondtam sokfele keppen variáltam, de ugy se mukodik
2014. nov. 2. 12:52
 5/7 A kérdező kommentje:

nos azt hiszem rájöttem miért nem megy...


a feladatban ugyanis úgy volt, hogy pl ha a szóban talál x-et vagy X-et ,akkor kiír vmit, és én ezt így írtam be:

if (c=='y'||'Y') {printf("Y\n");}


így viszont a 'vagy' miatt teljesen mást csinál, csomószor kíirja ugyan azt. Ha zárojelbe tettem (c==('y'||'Y')) akkor se csinálta jól, szóval külön ki kellett írnom... de gondolom erre is van vmi megoldás, hogy egybe lehessen írni ?

2014. nov. 2. 14:28
 6/7 A kérdező kommentje:

nah már erre is rájöttem :D

így kellett helyesen: if ((c=='y')||(c=='Y')) {blabla;}

2014. nov. 2. 14:47
 7/7 anonim ***** válasza:

na igen, ezt elfelejtetted leírni a korábbi kommentben.


if törzsében vagyokkal ( || ) logikai feltételeket választunk el, emiatt kell mindkétszer az 'egyenlő-e' (==) operátor

2014. nov. 2. 16:15
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!