Forum: Mikrocontroller und Digitale Elektronik Textersatz aus CharArray


von Mark (Gast)


Lesenswert?

Hi

Ich habe ein Array in der Form
1
char array[numberOfElements][maxLengthElementNames]={"x1", "x2", "x3", "x4", "x5"};
2
C-Code

Jetzt möchte ich unten im if nach dem -> anstatt array[i], den Text x1 
einsetzten.
Geht das irgendwie? Wie löst man sowas?
1
  for(uint8_t i; i<numberOfElements; i++)
2
  {
3
    if(Sum->array[i] > 535)
4
    {
5
6
C-Code

von Dirk B. (dirkb2)


Lesenswert?

Mit strcmp

von Mark (Gast)


Lesenswert?

Dirk B. schrieb:
> Mit strcmp

danke
1
struct Sums{
2
uint16_t x1, 
3
         x2, 
4
         x3,
5
         x4,
6
         x5;
7
};

Ich muss die Frage anders stellen.

Jetzt möchte ich schnell in einer Forschleife überprüfen, ob eines 
dieser Elemente den Wert 5000 überschreitet.
Wie kann ich das am Besten machen?
ein struct ist ja ähnlich wie ein array.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mark schrieb:
> Wie kann ich das am Besten machen?
> ein struct ist ja ähnlich wie ein array.

Nicht mit einem Struct. Das ist nicht dafür gedacht, mit einer 
for-Schleife über die Elemente zu iterieren.

Nimm ein Array.

von Mark (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Mark schrieb:
>> Wie kann ich das am Besten machen?
>> ein struct ist ja ähnlich wie ein array.
>
> Nicht mit einem Struct. Das ist nicht dafür gedacht, mit einer
> for-Schleife über die Elemente zu iterieren.
>
> Nimm ein Array.

es ist schon zu spät. wofür ist das dann gedacht?

von Rolf M. (rmagnus)


Lesenswert?

Versuche bitte erstmal, zu erklären, was du tatsächlich willst. Das 
erschließt sich für mich nicht so ganz.

Mark schrieb:
> Jetzt möchte ich unten im if nach dem -> anstatt array[i], den Text x1
> einsetzten.

Warum möchtest du das? Warum hast du erst ein Array gemacht, in dem der 
Text "x1" steht, wenn du das eigentlich direkt einsetzen willst? Und was 
erwartest du dir von der Schleife, wenn der Name eines Elements direkt 
da drin steht?
Übrigens: Was soll deiner Meinung nach passieren, wenn du den String 
"x1" mit der Zahl 535 vergleichst?

Mark schrieb:
> Jetzt möchte ich schnell in einer Forschleife überprüfen, ob eines
> dieser Elemente den Wert 5000 überschreitet.

Ok, das geht aber mit einer struct nicht.

> Wie kann ich das am Besten machen?
> ein struct ist ja ähnlich wie ein array.

Nicht wirklich. Die einzige Ähnlichkeit ist, dass ich in beiden jeweils 
mehrere Elemente haben kann.

Mark schrieb:
>> Nimm ein Array.
>
> es ist schon zu spät.

Warum? Hast du die struct in einen Stein gemeißelt und willst nicht 
nochmal einen neuen Stein anfangen?

> wofür ist das dann gedacht?

Um mehrere zusammengehörige Elemente von nicht notwendigerweise dem 
selben Typ gruppieren und über ihre Namen ansprechen zu können.
Bei einem Array dagegen sind alle Elemente vom selben Typ, und man kann 
sie über einen Index ansprechen und daher darüber iterieren, indem man 
in einer Schleife den Index bei jedem Zugriff erhöht.

von Dirk B. (dirkb2)


Lesenswert?

Wenn man Variablenamen wie x1, x2, x3, x4, x5 hat, ist das ein sehr 
sicheres Zeichen dafür, das man ein Array nehmen sollte.

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.