Forum: Mikrocontroller und Digitale Elektronik Textersatz aus CharArray


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Mark (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Mit strcmp

von Mark (Gast)


Bewertung
0 lesenswert
nicht 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) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.