Variablenname "hochzählen"

Gast #2568132
Lesenswert?

Guten Morgen,

Ich programmiere in C und habe eine Variable vom Typ struct, die 
„eintrag1“ heißt.
Jetzt möchte ich im Programm automatisch den Namen der Variable 
hochzählen und neue struct-Variablen definieren (eintrag1. eintrag2…).

Bei einem Int hätte ich den Namen in zwei chars zerlegt, mit strcpy und 
strcat zusammengefügt und die Funktion atoi verwendet, aber hier komme 
ich seit zwei Tagen nicht weiter. Im Studium haben wie nur die 
Grundbegriffe von C gelernt und über Google habe ich auch nicht 
gefunden, wobei ich zugeben muss auch nicht genau zu wissen wonach ich 
eigentlich suchen soll:).

Ich hoffe, dass ihr mir helfen könnt.

Gruß
Lena
#2568151
Lesenswert?

Ich glaub in C gibt es das nicht. Hab ich jedenfalls noch nirgends 
gesehen. Ich kenn das nur bei PHP. Dort hat jede Variable ein $-Zeichen 
voran stehen. Und wenn man da auf $eintrag1 zugreifen will, kann man 
auch schreiben:
$var = "eintrag1";
echo $$var;

Doch PHP gilt als eine uneffektive Sprache, dafür meines Erachtens aber 
einfacher als andere. Keine Datentypen z.B. oder man braucht bei Arrays 
keine Größe am Anfang festlegen, sondern man sagt, eine Variable ist ein 
Array und das wars.
#2568175
Lesenswert?

Lena schrieb:
> Ich programmiere in C und habe eine Variable vom Typ struct, die
> „eintrag1“ heißt.
> Jetzt möchte ich im Programm automatisch den Namen der Variable
> hochzählen und neue struct-Variablen definieren (eintrag1. eintrag2…).

Wozu das Ganze?

Du erzählst, wie_ Du _irgendetwas implementieren willst; es wäre 
wesentlich sinnvoller, wenn Du zuerst einmal berichtest, was Du da 
machen willst. Beschreibe also zunächst bitte, was dieses irgendetwas 
ist.

Als nächstes solltest Du vielleicht einmal Dich anhand eines C-Lehrbuchs 
Deiner Wahl mit der Sprache "C" etwas vertrauter machen.

Bernhard
#2568184
Lesenswert?

Nico Sch. schrieb:
> Stefan schrieb:
>> Es gäbe noch den Verkettungsoperator ##
>
> Was macht der? Google filtert leider das ## heraus.

Aber das "Verkettungsoperator" wohl kaum.

Lena schrieb:
> Bei einem Int hätte ich den Namen in zwei chars zerlegt, mit strcpy und
> strcat zusammengefügt und die Funktion atoi verwendet

Was mit Sicherheit nicht das von dir erwartete Ergebnis hätte.
Persönliche Seite #2568286
Lesenswert?

Lena schrieb:
> Jetzt möchte ich im Programm automatisch den Namen der Variable
> hochzählen und neue struct-Variablen definieren (eintrag1. eintrag2…).
>
> Bei einem Int hätte ich den Namen in zwei chars zerlegt, mit strcpy und
> strcat zusammengefügt und die Funktion atoi verwendet, aber hier komme
> ich seit zwei Tagen nicht weiter. Im Studium haben wie nur die
> Grundbegriffe von C gelernt und über Google habe ich auch nicht
> gefunden, wobei ich zugeben muss auch nicht genau zu wissen wonach ich
> eigentlich suchen soll:).

Naja, das ist kein Wunder, sowas geht in C naemlich nicht. C ist keine 
interpretierte Sprache, da muessen fuer den Compiler logischerweise die 
Bezeichner auch zur Compilezeit bekannt sein. Rein theoretisch kann man 
gerade bei Strukturen durch einen entsprechenden Speicherzugriff die 
Namen "umgehen", das ist aber gefaehrlich, da man sich darauf verlassen 
koennen muss, wie die Strukturen im Speicher organisiert werden und das 
kann man bei unterschiedlichen Compilerversionen nicht wirklich.

Greets,
Michael

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren