PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ -> string case ?



Mat
03-10-2005, 15:48
Hallo wieso kompiliert der folgende code nicht ?


std::string st = "test";
switch (st)
{
case "test":
{
std::cout << "hallo" << std::endl;
}
}


er meckert mit : error: switch quantity not an integer

nul
03-10-2005, 16:27
Weil man in einem Switch keinen String angeben kann, hoechstens ein char.
Es wird dabei, wie du auch hingewiesen wirst, mit Integer gearbeitet. String ist aber nicht kompatibel zu Integer und deshalb error!

anda_skoa
03-10-2005, 16:27
Weil nur Ganzzahltypen, also int, uint, char usw als Typ eine Switch Statements benutzt werden können.

Du kannst entweder über eine if elseif Kette arbeiten, oder zuerst den String mit einer map auf eine Zahl mappen, oder aus dem String eine Zahl berechnen (Hashing)

Ciao,
_