INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Strings erstellen und vergleichen
20.06.2016, 23:47
Beitrag #1
Strings erstellen und vergleichen
Ich habe eine frage zu Strings, google hilft mir aktuell nicht viel.

Ich bekomme 3 bytes als Variable.
A, B und C nun möchte ich diese 3 in einen String schreiben mit zeichen.
In C und scheinbar auch arduino gibt es sscanf und methoden wie format etc...

Quasi das ich einen String bekomme : "zahl 1 %d zahl 2 %d zahl 3 %d"

Ich weis, das ich es für den Serial Monitor auch anderst lösen kann mit print und println aber das ist nicht das thema. es geht ums einbringen der Bytes in einen String.
Ich möchte diesen String dann mit einem anderen vergleichen mit strcmp falls das möglich ist.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.06.2016, 07:56
Beitrag #2
RE: Strings erstellen und vergleichen
Hallo,

(20.06.2016 23:47)BennIY schrieb:  Ich bekomme 3 bytes als Variable.
A, B und C nun möchte ich diese 3 in einen String schreiben mit zeichen.
In C und scheinbar auch arduino gibt es sscanf und methoden wie format etc...
Viel Wge führen nach Rom...

(20.06.2016 23:47)BennIY schrieb:  Quasi das ich einen String bekomme : "zahl 1 %d zahl 2 %d zahl 3 %d"

Ich weis, das ich es für den Serial Monitor auch anderst lösen kann mit print und println aber das ist nicht das thema. es geht ums einbringen der Bytes in einen String.
Ich möchte diesen String dann mit einem anderen vergleichen mit strcmp falls das möglich ist.

Wenn Dich der Platzbedarf nicht stört kannst Du auch die Ardiono Strin Klasse nehmen.

Code:
String ausgabe = "zahl 1" + String(A,DEC) + "zahl 2" +  String(B,DEC) + "zahl 3" + String(B,DEC);

sprintf geht natürlich auch, könnte etwas weniger Speicher brauchen.

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.06.2016, 09:31
Beitrag #3
RE: Strings erstellen und vergleichen
Hallo,
ich bin nicht so der Profi, aber vielleicht hilft es Dir. Hier mal ein
Beispiel mit Uhrzeit.


hier wird es deklariert:
Code:
char Zeit[6];
char kStd[3];
char kMin[3];
char GZeit[9];

char sE3Zeit[9];
char sZeit[9];


int seconds;
int minutes;
int hours;

hier wird der String erzeugt:
Code:
snprintf(Zeit,sizeof(Zeit),"%02d:%02d",hours,minutes);// String Zeit
snprintf(kStd,sizeof(kStd),"%02d",hours);// String Kontroll Stunde
snprintf(kMin,sizeof(kMin),"%02d",minutes);// String Kontroll Minute
snprintf(GZeit,sizeof(GZeit),"%02d:%02d.%02d",hours,minutes,seconds);

hier wird der String verarbeitet:
Code:
if ((zlsZeit == 1) && (SzZl == 3))
{
strcpy(sE3Zeit, sZeit);                       // hier wird der String kopiert
}

if (strcmp(sE3Zeit, GZeit) == 0)       // hier wird der String verglichen
{
digitalWrite(TsLEDgr, LOW);
}

ganz lustig wird es, wenn Du das mit "float" versuchst. Ich habe mir seiner
Zeit fast die Zähne dran ausgebissen. Die Geschichte ist nicht einfach.
Du wirst also lesen müssen.
Gruß und Spaß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.06.2016, 23:04
Beitrag #4
RE: Strings erstellen und vergleichen
Das ist sehr ausführlich danke euch, nun hab ich noch eine Frage.

Ich habe ein Array vom Datentyp Byte. Jedes Element ist eine Zahl, wie kann ich aus diesen Zahlen ein String erzeugen. Die Zahlen stehen für den jeweiligen Buchstaben im Ascii.

Ich müsste denk ich mal, zuerst das Array durch gehen.

Code:
String string = "";
for(byte i = 0; i<string.length();i++)
{
string += array[i];
}

abgesehen davon das dieser Code ziemlich falsch ist, wie müsste es denn gehen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.06.2016, 10:37
Beitrag #5
RE: Strings erstellen und vergleichen
Hallo,
wenn Du das Array mit "byte" gefüllt hast, dann kannst Du es doch auch wieder
über den Index auslesen. Über Char kommst Du dann an Deinen Buchstaben.

Die StringGeschichte auf dem Arduino ist recht komplex. Da wirst Du nicht
umhin kommen Dich schlau zu lesen.
Gruß und Spaß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Problem: RFID code mit Inhalt einer Textdatei auf einer SD Karte vergleichen MartinK 6 516 29.03.2016 16:45
Letzter Beitrag: MartinK
  Webserver Daten empfangen und Diagramm erstellen KK66 2 1.092 16.07.2015 07:34
Letzter Beitrag: KK66
  Funktion aus Wertepunkten erstellen- wie ? HaWe 6 1.524 05.06.2015 07:53
Letzter Beitrag: HaWe
  Hilfe - Problem beim erstellen einer Eigenen Funktion raspido 0 916 24.05.2015 10:31
Letzter Beitrag: raspido
  viele Strings in "Datenbank" - wie am besten?? DL1AKP 2 522 30.03.2015 11:49
Letzter Beitrag: DL1AKP
  Ubuntu12.04 mit Python CSV erstellen klaus87 3 697 27.03.2015 15:39
Letzter Beitrag: klaus87
  Uhrzeiten vergleichen MaHa1976 31 4.292 26.12.2014 21:14
Letzter Beitrag: MaHa1976
Question Erstellen eines Fake TV´s mit Zimmerlicht. GRÜNSCHNABEL Frage marschewka 2 2.591 28.10.2014 09:20
Letzter Beitrag: Corvus
  Libary Erstellen? kartal03 1 758 13.07.2014 18:55
Letzter Beitrag: Thorsten Pferdekämper
  Messwerte Zwischenspeichern und Vergleichen Wampo 1 880 09.06.2014 13:06
Letzter Beitrag: Thorsten Pferdekämper

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste