string erst deklarieren und dann zuweisen in C

Name1235

Banned
Registriert
Okt. 2015
Beiträge
51
Hallo,
ich kann ja schreiben
*********************
name[]="Paul";
*********************
Wenn ich jetzt aber erst definiere

*****************************
name[10];

Wie weise ich jetzt den Wert Paul zu?
So?
*****************
name="Paul"
***************
eher nicht, oder?

Muss ich mit einer for-schleife jeden einzelnen Buschtaben einzeln zuweisen?
 
man 3 strcpy
 
strcpy ist doch zum koppieren von strings da.
Wie soll das gehen?
 
Jep. strcpy kopiert dir deinen String in deine deklarierte Variable.
 
Um dein Problem gänzlich verstehen zu können musst du wissen wie Pointer funktionieren, was der Unterschied zwischen einem Array und einem Pointer ist und wie String-literale funktionieren.
Wenn du diese Grundlagen verstanden hast wirst du sehen warum strcpy der richtige Weg ist und warum name = "Paul"; nicht das macht was man sich erwarten würde.

Gruß
BlackMark
 
Ok, Pointer hatten wir noch nicht.
Aber ich habe jetzt eine andere Möglichkeit gefunden das Problem zu umgehen.
Danke.
 
Wie sieht denn deine andere Möglichkeit aus? Wäre vielleicht interessant.

Gruß
BlackMark
 
Du musst strcpy() bei reinen C strings verwenden.(streng genommen kannst du natürlich auch alle Buchstaben einzeln reinschreiben mit z. B meinstring[0]='H'; und so weiter. Aber das ist deutlich komplizierter. Am Ende \0 nicht vergessen! ) Später in den c++ strings der Stl kannst du das mit meinstring="Hallo"; machen.
 
Zurück
Oben