mikrocontroller.net

Forum: Compiler & IDEs strcpy bei festen String Längen - aber ohne '\0' Zeichen?


Autor: John Schmitz (student)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte in eine Structure Teil-Strings kopieren, aber ohne das '\0' 
Zeichen, da ich mir sonst das erste Byte des folgenden Structure-Teils 
überschreibe.

Empfehlt Ihr mir, das Byte per Byte in einer for Schleife per Zuweisung 
zu machen oder gibt es eine "strcpy" ähnliche Funktion (vielleicht 
"StrInsert()") in der man die länge des einzufügenden Teilstrings 
mitgibt und somit kein '\0' als Abschluss braucht ?

Grüsse

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> gibt es eine "strcpy" ähnliche Funktion (vielleicht "StrInsert()")
> in der man die länge des einzufügenden Teilstrings mitgibt und somit
> kein '\0' als Abschluss braucht ?

Vielleicht
  void *memcpy(void *dest, const void *src, size_t n);

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein gutgemeiter Ratschlag:

Ändere unbedingt Deinen Strukt, so dass das '\0' Charakter immer Platz 
hat.

Autor: John Schmitz (student)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter wrote:
> Ein gutgemeiter Ratschlag:
>
> Ändere unbedingt Deinen Strukt, so dass das '\0' Charakter immer Platz
> hat.

nee - das ist nicht so gut. Ich möchte nämlich ein Telegramm füllen, das 
keine  Ascii '\0' enthalten soll. Die (Teil-)Structures liegen 
hintereinander. Natürlich beende ich den Telegramm String (zwecks 
Bearbeitung im UART) mit einem '\0' - aber innerhalb der Structure (die 
über union mit Teilstrings strukturiert ist) möchte ich keine '\0' 
sehen!

Trotzdem - Danke

>Vielleicht
>
>  void *memcpy(void *dest, const void *src, size_t n);

Werde ich mir mal anschauen - auch vielen Dank an Dich!

Grüsse

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
strncpy tuts auch.

Oliver

Autor: John Schmitz (student)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oliver wrote:
> strncpy tuts auch.
>
> Oliver

... und genau das hatte ich gesucht - vielen Dank + Grüsse

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.