Stings in Array ablegen

OP #702171
Lesenswert?

Hallo, ich brauche mal Hilfe mit einem Array.

In einer Schleife messe ich Temperaturen an sech NTCs mit dem ADC.
Dann bastel ich mir ein mit strcpy und strcat einen String in dem die 
Temperatur, Sensorbezeichung, Zeit, usw drin stehen. So das ich ein 
String mit Trennzeichen bekomme den ich dann an meine PC Software 
übergeben kann.
Diesen String z.B.(temp;bezeich;zeit;\n\r) möchte ich dann in einem 
Array ablegen, so dass ich dann wenn die Schleife alle sechs Sensoren 
gemessen hat ein Array habe in dem die sechs Stings liegen. Damit ich 
die dann an den PC senden kann.

Kann man Strings in Arrays schreiben?
Eigentlich ist ja jeder String eh schon ein Array, geht das dann 
überhaupt?

mfg
jabberwock
Gast #702181
Lesenswert?

Man kann auch ein Array von Strings erstellen.

char  szStr[10][20]  erzeugt dir ein Array von 10 Strings der laenge 20.

Allerdings wuerde Ich an deiner Stelle mir die Messwerte erstmal so 
merken in binaere Form und nicht als ASCII String. Erst dann wuerde ich 
den String zusammenbasteln und dann ausgeben. Das hat den Vorteil enorm 
Speicherplatz zu sparen.

Gruss Helmi
#702182
Lesenswert?

Richtig, ein String ist (in C) nichts anderes als ein Array. Und Du 
kannst (wie Du ja selbst schon festegestellt hast) mit strcat mehrere 
Strings zu einem zusammenfügen. Wenn die Länge der Strings bekannt ist, 
dann ist es vermutlich auch das Sinnvollste, es genau so zu machen. 
Selbstverständlich kannst Du die Strings auch in einem zweidimensionalen 
Array ablegen (quasi ein Array von Strings), aber das ist bei bekannter 
Stringlänge überflüssig, da Du dann auch (bei 6 Strings) 6 mal die 
Ausgabefunktion aufrufen müsstest. Wenn Du natürlich drauf angewiesen 
bist, die Strings einzeln zu haben, dann kannst Du natürlich ein 
zweidimensionales Array benutzen (oder alternativ die Strings einzeln 
ablegen und ein Array von Pointern zum Zugriff benutzen; dann können die 
Strings auch unterschiedliche (beliebige) Längen haben, ohne dass 
unnötig Speicherplatz blockiert wird).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren