Kezdőoldal » Számítástechnika » Programozás » Miért csak egyszer fut le a...

Miért csak egyszer fut le a forciklus? C++

Figyelt kérdés

[link]

A 27 sorban levő forciklus csak egyszer fut le de miért?


2012. okt. 30. 09:47
 1/6 A kérdező kommentje:

Itt van rövidben a problémám:

// main.cpp


# include <iostream>

# include <string.h>


typedef unsigned short ushort ;


using std::cout ;

using std::endl ;

using std::string ;


int main(void)

{

ushort szamlalo = 0;

char mondat[] = "Marabunta vagy sem de igen." ;


for(char *szo = strtok(mondat, " "); szo != '\0'; szo = strtok(0, " ."))

cout << szo << endl ;


cout << endl ;


for(char *szo = strtok(mondat, " "); szo != '\0'; szo = strtok(0, " ."))

cout << szoo << endl;



return int(0) ;

}


A második for ciklus csak egyszer hajlandó lefutni és én nem értem,hogy miért.

2012. okt. 30. 10:02
 2/6 A kérdező kommentje:

Ez szörnyen idegesítő!

Az strtok függvény nemcsak vissza adja a neki át adott karaktertömb szavait hanem módosítja is azt.

2012. okt. 30. 10:06
 3/6 anonim ***** válasza:
Mindig mielőtt végigmész rajta strtok-al előtte másold le a mondatot egy másik char tömbbe és a másolatot add oda neki. Nem szükséges lemásolni egy az egybe az egész tömböt, elég csak mint ANSI c string reprezentánst a strcpy-val.
2012. okt. 30. 10:44
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:
Úgy csináltam már kész.
2012. okt. 30. 10:51
 5/6 A kérdező kommentje:
Egyébként egy ilyen feladatot hülyeség volna OO ban megírni ugye?
2012. okt. 30. 11:16
 6/6 anonim ***** válasza:

Nem hiszem gyakorlásnak is jó meg amúgy is, az alacsonyabb szintű (hardverhez közelebb álló) strtok-ot be lehet csomagolni egy osztályba. Elrejtve az osztályba ezt a mellékhatását hogy felülírja az inputot és elrejtve az alacsony szintű char*-ot.

Egy stringtokenizer osztályt lehet rá írni ami nextToken metódussal adja mindig a következő string-et (nem char*-ot)

2012. okt. 30. 11:32
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!