hallo zusammen, wenn ich mir im sram ein array reserviere z.b: char array[10]; und ich das ganze mit einem string füllen will kenne ich nur eine komplizierte art dies zu tun: array[0] = 'H'; array[1] = 'a'; array[2] = 'l'; array[3] = 'l'; array[4] = 'o'; gibt es keine variante dies einfacher ist?
Von Anfänger zu Anfänger :> char array[]="Hallo"; siehe: http://os.inf.tu-dresden.de/%7Ejn4/ckurs/c-kurs0.htm#0_effektiv Kapitel 3 Grad zu dem Thema hätte ich auch eine Frage: Wenn ich ein Feld gleich mit Variablen initialisiere, dann schreibt AVRstudio 4 bei der Simulation im Watch Fenster anstelle meiner Variablen nur "irgendwelche" Zahlen in das Feld, siehe Anhang. Was kann ich da falsch gemacht haben? Danke und Gruß Zoltan
char array[8]={'H','a','l','l','o'}; geht nur bei der Initialisierung der Variable (und ist kein String, weil die abschließende 0 fehlt). Um zur Laufzeit einen String in das Array zu kopieren gibt es die Funktionen strcpy und strncpy. Beispiel: strcpy(array, "Hallo"); Bei strncpy kann man die Anzahl n der zu kopierenden Bytes angeben. Das macht z.B. Sinn wenn man einen String unbekannter Länge hat, den man in ein Array mit begrenzter Länge kopieren will. Allerdings wird der String nicht automatisch terminiert, deshalb muss man "von Hand" eine Null anfügen: strcpy(array, string, 7); // 7 bytes von string nach array kopieren array[7] = '\0'; // das 8. Byte in array auf 0 setzen
Initialisierte globale Variablen werden in AVRStudio nicht korrekt angezeigt. Siehe WinAVR (AVR COFF) readme file, Abschnitt "known issues".
Hi Andreas hat es zwar schon mehr oder weniger geschrieben aber so eindeutig geht es daraus nicht hervor: char array[8]={'H','a','l','l','o'}; ist nicht identisch mit char array[8]="Hallo"; da im zweiten Fall noch das den String terminierende Zeichen '\0' angefügt wird. Matthias
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.