Forum: Compiler & IDEs Enum oder Char-Array


von Theo (Gast)


Lesenswert?

Angenommen ich habe 3 Textausgaben:

Rot, Gelb, Grün

und dazugehörig einen Zähler von 0..2

Je nach Zahlerstand soll eine Farbe ausgegeben werden.

Mache ich dies nun mit einem mehrdimensionalen Array

Farben[3][5];

oder über ein Enum?

Wie funktioniert das am Besten?

von Klaus W. (mfgkw)


Lesenswert?

Vielleicht so ähnlich:
1
int main( int nargs, char **args )
2
{
3
  char *Farben[] =
4
    {
5
      "Rot",
6
      "Gelb",
7
      "Gruen"
8
    };
9
  const size_t   nFarben = sizeof(Farben)/sizeof(Farben[0]);
10
11
  for( size_t i=0; i<20; ++i )
12
  {
13
    printf( "%s\n", Farben[i%nFarben] );
14
  }
15
16
  return 0;
17
}

von Theo (Gast)


Lesenswert?

Danke für den Code!

Warum geht der Zähler der for-Schleife bis 20?

Gehts auch mit einem Enum?

von Rolf Magnus (Gast)


Lesenswert?

Theo schrieb:
> Danke für den Code!
>
> Warum geht der Zähler der for-Schleife bis 20?

Warum nicht? Kann auch eine andere Länge haben?

> Gehts auch mit einem Enum?

Was versprichst du dir davon?

von Klaus W. (mfgkw)


Lesenswert?

Theo schrieb:
> Warum geht der Zähler der for-Schleife bis 20?

Du hattest nichts davon gesagt, daß du 3071 haben willst.

>
> Gehts auch mit einem Enum?

Ja.
Wenn es in der Aufgabenstellung steht, geht es damit auch.

von Peter D. (peda)


Lesenswert?

Enum und Strings sind 2 völlig verschiedenen Dinge. Man kann daher nicht 
das eine durch das andere ersetzen.

Enum sind einfach nur Defines von Integer-Werten:

http://home.fhtw-berlin.de/~junghans/cref/SYNTAX/enum.html


Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.