Miért csak egyszer fut le a forciklus? C++
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.
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.










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)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!