Strings zuweisen...

bigfella

Erfahrenes Mitglied
Hi.
Hab ein Problem mit der Zuweisung von Strings.
Folgender Code:
Code:
#include <stdio.h>
int main(void)
{
char array1[] = "Hallo";
char array2[10];

printf("\n Main: %s ", array1);
printf("\n Main: %s ", array2);

getch();
return 0;
}

Frage:
Wie kann ich nun array2 den Inhalt von array1 zuweisen?
Als erstes dachte ich:
array2 = array1; // bekam Fehlermeldung: Lvalue required
Dann habe ich einiges "ausprobiert" mit eckigen Klammern, Dereferenzieren und Adressoperator...
Komme einfach nicht weiter.
Bin mir sicher, dass das einer von Euch weiß :)
Vielen DANK


EDIT:
Habe gerade eine Lösung gefunden:

char *array1 = "Hallo";
char *array2;
array2=array1;

Dann übernimmt array2 das "Hallo" von array1.
Aber trotzdem muss es doch auch mit Arrays gehen, oder nicht?
 
Zuletzt bearbeitet:
Ja, habe ich.
Wollte diese mir aber selber schreiben und dann kam ich eben auf die Frage...
Wenn mir das jemand erklären könnte, wär klasse.
 
moin


Ist doch ganz schnell erledigt.
Code:
char array1[] = "Hallo";
char array2[10];

for(int i=0; i<strlen(array1); i++)
{
    array2[i] = array1[i];
    array2[i+1] = 0;
}
So müsste es gehen.


mfg
umbrasaxum
 
moin


Nö,
Code:
array2[i+1] = 0;
ist schon richtig, da ich hier wirklich den Wert Null haben will.
Richtiger wäre aber wohl
Code:
array2[i+1] = (char)0;
Darauf kommt es aber nicht an.


mfg
umbrasaxum
 
moin


Ich will in auch termninieren!
Und das "Terminierungszeichen ist nunmal das Zeichen mit dem Wert Null.


mfg
umbrasaxum
 
:confused:
Ich hatte jetzt immer mit (char)NULL terminiert, und das hat auch wunderbar geklappt.
Code:
if (strlen(data)>0)
	{
		data[0]=(char)NULL;
	}
Wo liegt denn nun der Unterschied? Vielleicht dass ich mit Pointern arbeite und erstmal Speicher allozieren muss und hier im Beispiel mit festen Arrays gearbeitet wird?
 
moin


Ist NULL denn wirklich nicht das selbe wie 0?
Ich wüsste den Unterschied nicht!
Code:
if( 0 == NULL)
    std::cout<<"Geht doch ;)";
Bin jetzt zu faul den Compiler aufzumachen, aber ich denke es sollte ne Ausgabe kommen.


mfg
umbrasaxum
 
Zurück