PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variablen aneinanderhängen



tuxboy
12-05-2002, 01:15
Hi, da draußen!

Wahrscheinlich ist das jetzt eine Einsteigerfrage, aber ich habs anscheinend nötig:)

Wie kann ich zwei Variablen aneinanderhängen, oder an die erste Variable eine Zeichenfolge anhängen um zu unterscheiden:

Beispiel:

..........
char * variable_;
int var_nr = 1;

strcpy (variable_+var_nr, "Hello");..........

ungefähr so...aber so oder ähnlich will ers nicht nehmen.

Ich hoffe dass ihr mir schnell helfen könnt (würde mich ja nicht wundern;) )

Viele Grüße

anda_skoa
12-05-2002, 21:37
Hi!

Ich bin mir nicht sicher, ob ich überhaupt verstanden habe was du brauchst :confused:

Meine Interpretation:

Du willst ein Array, also eine Kette gleichartiger Variableb, so dass du mit einem Index, der in einer anderen Variablen gespeichert ist, auf unterschiedleiche Teile des ersten zugreifen kannst:



int int_array[3]; // 3 Elemente vom Typ int
int index ;
int_array[0] = 1;
int_array[1] = 3;
int_array[2] = 5;

index = 1;
int a;
a = int_array[index]; // a erhält den Wert 3


Bei char* ist es bischen komlizierter, abhängig davon ob, die unterschiedichen Elemente unteschiedlich lang sein dürfen (d.h. wenn keine maximale Länge garantiert werden kann), weil char* selbst bereits ein Array von char ist.

Wenn eine maximale Länge definiert ist, geht es so:


char lines[3][100]; // 3 Elemente für je 99 Zeichen
int index = 0;
strncpy(lines[index], "test", 100); // kopiert "test" in das erste Element von lines


Ciao,
_

peschmae
13-05-2002, 12:11
das problem, wieso es so nicht geht ist, dass man die variablennamen
immer ganz ausschreiben muss und (leider) nicht zusammensetzen kann.

Ich denke, das liegt daran, dass der Compiler die Variablennamen nicht stehen
lässt, sondern durch eigene Werte ersetzt oder so.


MFG Peschmä

P.S. Das Array ist hier wirklich die einzige Lösung!

tuxboy
16-05-2002, 18:17
Danke für die schnelle Hilfe.....

hab das auch gleich mal in die Tat umgesetzt und es funktionierte...
hab allerdings mein Problem dann doch noch auf andere Weise gelöst.

Jetzt weiß ichs für die Zukunft !!!

Viele Grüße