mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik mal wieder Zeichenkette


Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Hab mal wieder folgendes Problem:
Über die UART empfangenen Zeichen liegen in einer Zeichenkette "test". 
Jetzt hat der String z.B. 40 Zeichen.
Beispiel String test: 101371AH4NRE8664HAG67.....
Die Zeichen 71 bleiben immer gleich.Davor und danach können es mehr oder 
weniger Zeichen werden!
Wie kann ich die Zeichen ab 71 bis zum Ende des Strings in einem anderen 
String kopieren?
Das alles läuft im 8535 und in C.
Gruß Helge

Autor: Christian Schifferle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Helge

>Wie kann ich die Zeichen ab 71 bis zum Ende des Strings in >einem anderen String 
kopieren?

Gar nicht, da du ja nie sicher sein kannst, ob in den davor liegenden 
Zeichen bereits irgendwo ein 71 auftaucht.
Ansonsten könntest du die 71 suchen und ab der gefundenen Adresse + 2 
umkopieren, also ungefähr so:

char test[41];
char umkop[41];
char *pSuch;

pSuch = strstr (test, "71"); // Suche nach 71 im String test
if (pSuch) {  // gefunden
   strcpy (umkop, pSuch+2);
}

aber wie gesagt, wenn in den davor liegenden Zeichen bereits die 
Kombination 71 auftaucht fällst du auf die Nase (Autsch).

Gruss
Christian

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank Christian
ich werde mal mein Glück versuchen.Die zeichen sollten davor eigentlich 
nicht auftauchen.Notfalls kann ich zum suchen der 71 noch ein drittes 
Zeichen dazu fügen.
Gruß Helge

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab die Sache mal ausprobiert.Leider gibs irgendwie ein Problem mit dem 
"strcpy".
kopiert die Zeile

strcpy (umkop, pSuch+2);
nicht nur ein Zeichen? Bekomme da immer ne Fehlermeldung.
Gruß Helge

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, strcpy kopiert den ganzen String. Welche Fehlermeldung bekommst du 
denn?

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bekomme die Fehlermeldung:"funktion Parameter incompatible with its 
declaration"

strcpy (umkop, pSuch+2);
Kopiert die Zeile nicht nur ein Zeichen von pSuch in umkop?

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeig mal das ganze Programm.

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas
Ich habs zusammen bekommen. Ich zähle einfach die Steuerzeichen.Hab 
festgestellt das kurz vorm "brauchbarem" Text noch welche auftauchen.
Vielen Dank für die tip´s
Gruß Helge

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.