[C/C++]switch und strings

mit der switch anweisung kann ich ja nur einzelne zeichen (und int,double....) "vergleichen". nun hab ich jedoch einen string. gibt es eine schlaue möglichkeit diese "switch" anweisung umzuschreiben bzw string tauglich zu machen?

if (...)
elseif(....)
elseif(....)
ist wohl nicht das wahre....oder doch???
 
@soox

Kommt drauf an, was Du vor hast. Wenn Du den String vergleichen willst, wie
z.B. bei einer Passwort-Abfrage, dann mache das doch mit:

Code:
#include<string.h>

int strncmp(const char *string1, const char *stirng2, size_t n)

Das vergleicht die beiden Zeichenketten string1 und string2 bis zum n-ten Zeichen.
Bei völliger Übereinstimmung von string1 und string2 ist der Rückgabe-Wert "0",
ansonsten "negativ", wenn string1 < string2 und "positiver" Rückgabe-Wert
bei string1 > string2.

Hoffe Dir hilft das weiter.

MfG Rushjo
 
Also mit einer switch/case anweisung wirds nicht gehen, auszer du rechnest den String in eine zahl um oder nimmst halt einzelne zeichen.

Schau dir mal FLEX an. Da werden ähnliche probleme bearbeitet.

mfg
 
@rushjo: ist leider keine passwort abfrage. zur zeit kann der string 7 verschiedene variabeln annehmen und muss entsprechenden code ausführen.


Originally posted by Gulliver
Also mit einer switch/case anweisung wirds nicht gehen,
darum suche ich je ne andere möglichkeit...das mit flex werd ich mir mal anschauen. bevor ich ne int umrechnung mache, benutze ich die "if(....) / elseif(....)" variante.
das mit dem flex werd ich mal anschauen.....du meinst doch das gnu flex???


mal schauen....ev fällt mir ja ne schlaue möglichkeit ein, statt srings integer werte zu nehmen (nicht umrechnen, sondern nur mit diesen werten arbeiten) .
 
Zurück
Oben