Forum: Mikrocontroller und Digitale Elektronik wie kann ich mehrere Strings deklarieren


von Schägi (Gast)


Lesenswert?

Hallo, ich habe eine Datenbank mit ca. 20 Daten, jeweils ein int-Wert
und ein String. Die int-Werte kann ich ja leicht abspeichern:

int werte[20];

Doch wie mache ich das mit den Strings, ich kann ja nicht sagen "char
name[20]", das wären ja nur 20 Zeichen. Ich brauche aber 20 Strings
mit jeweils ca. 10 Zeichen. Wie geht das?

von Andreas Grimm (Gast)


Lesenswert?

Du brauchst ein zweidimensionales Array "char name[20][11];" jetzt
hast du 20 Zeichenketten mit jeweils 10 Zeichen + \0;
Besser wäre allerdings du würdest eine Struktur aus int u. string
ezeugen u. dan  ein array auf diese Struktur:
typedef struct {
int  wert;
char name[11]
} DAT_TYP;

DAT_TYP daten[20];

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo Schägi

indem Du ein array definierst:

char name[20][10]; //das sind 20 Strings zu max 10 Zeichen

Gerhard

von Schägi (Gast)


Lesenswert?

Danke für die schnelle Antwort:

Funktioniert das denn so:

char name[20][10];

name[1]="Peter";
name[2]="Klaus";
...

von leo9 (Gast)


Lesenswert?

@Gerhard:

Sorry fürs ausbessern, aber mit ...[10] definierst du 10 Zeichen, ein
String muß aber mit 0x00 abgeschlossen werden. Deine Definition läßt
sich nur für neunstellige Strings anwenden.

grüsse leo9

von Gerhard Gunzelmann (Gast)


Lesenswert?

Nee, so nicht

Im Programm mit: strcpy( name[5], "Peter" );

oder bei der Initialisierung:

char name[20][10] = {"Peter", "Paul", Sigi",..};


Gerhard

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo Leo


jo

Gerhard

von Schägi (Gast)


Lesenswert?

Vielen Dank an alle! Jetzt müsste es funktionieren.

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
Noch kein Account? Hier anmelden.