Hi Leute, ich habe 40 Strings, die ich gerne in einem Array speichern will. Also muss doch die dekleration so aussehen: char strings[40][16]; Die Strings sind jeweils 16 Zeichen lang. Muss ich dann [16] oder [17] schreiben? [16] bedeutet doch 0-15 also sprich 16 Buchstaben könnte ich abspeichern, allerdings gibts ja die Nullbyteterminierung, also könnte ich nur 15 Buchstaben speichern oder? So und jetzt gehts weiter, wie weiße ich der Variable dann eine Zeichenkette zu? z.b. strings[0] = "Strom"; strings[1] = "Spannung"; usw. Aber so gehts ja nicht... Kann mir da bitte jemand helfen, ich weiß es sollte in jede C-Buch stehen, aber da wird immer irgend eine Funktion zum Kopieren benutzt und da ich ja am µC diese Funktionen nicht habe, bin ich etwas ratlos... Oder muss ich mir so eine Funktion selbst schreiben???
Gast wrote: > > char strings[40][16]; > > Die Strings sind jeweils 16 Zeichen lang. Muss ich dann [16] oder [17] > schreiben? 17 > [16] bedeutet doch 0-15 also sprich 16 Buchstaben könnte ich > abspeichern, Nein > allerdings gibts ja die Nullbyteterminierung, Genau > also könnte > ich nur 15 Buchstaben speichern oder? Ja > strings[0] = "Strom"; strcpy( strings[0], "Strom" ); > strings[1] = "Spannung"; strcpy( strings[1], "Spannung" ); > Oder muss ich mir so eine Funktion selbst schreiben??? http://www.mikrocontroller.net/articles/FAQ#Wie_funktioniert_String-Verarbeitung_in_C.3F
C:\Dokumente und Einstellungen\Administrator\Desktop\Mikrocontroller Programme\stringstest\default/../stringstest.c:9: undefined reference to `strcopy' Ich hab oben aber stehen #include <string.h> Hier der Code:
1 | #include <avr/io.h> |
2 | #include <avr/pgmspace.h> |
3 | #include <string.h> |
4 | |
5 | int main(void) |
6 | {
|
7 | RS232_Init(); |
8 | char strings[40][17]; |
9 | strcopy(strings[0], "Strom"); |
10 | strcopy(strings[1], "Spannung"); |
11 | while(1) |
12 | {
|
13 | printf ("%s",strings[0]); |
14 | }
|
15 | }
|
Kommt drauf an, wenn die Strins allesamt genau 16 Bytes lang sind, machts u.U. Sinn, das Nullbyte wegzulassen und stattdessen die Länge anzugeben.
Ja aber was muss ich machen, damit ich die funktion strpcy() benutzen kann???? Es kommt immer dieser Fehler! Danke schonmal.
Gast wrote: > Ja aber was muss ich machen, damit ich die funktion strpcy() benutzen > kann???? Es kommt immer dieser Fehler! Wenn Du strcpy richtig schreibst (also so, wie Karl heinz es Dir vorgegeben hat), dann sollte es auch keine Fehlermeldung geben. Eine Funktion strcopy gibt es aber nicht!
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.