strings kürzen

OP #4429396
Lesenswert?
• ▲
▼
Moin,

welche c-Funktion eignet sich am Besten, wenn ich bei einem String, der 
von einem AVR empfangen wird, die ersten drei Zeichen entfernen möchte.

Des Weiteren möchte ich auch Sonderzeichen auf diesem Weg übertragen. 
Dies habe ich wie folgt übertragen "xyz\337" Eigentlich sollte ein 
°-Zeichen dabei herauskommen, macht es jedoch nicht.

Gruß
Gast #4429409
Lesenswert?
• ▲
▼
Wenn du in ein anderes char-Array kopieren willst, kannst du bei Quelle 
3 dazu addieren.

Wenn es im selben Array sein sollte, dann memmove.
Selber schreiben ist aber auch nicht schwer.

Woher hast du den Code für das Grad-Zeichen?
Und wie steht der Text im Code? Ist das eion Stringliteral oder eine 
Nutzereingabe?
OP #4429433
Lesenswert?
• ▲
▼
Ich übertrage per BT Verbindung einen String, der dann auf einen OLED 
ausgegeben werden soll. Daher kommt auch der Code für das Grad-Zeichen. 
Ich habe aber scheinbar das Problem, dass schon \ nicht als 
Sequenzbeginn interpretiert wird, sondern als Zeichen auf dem LCD 
übergeben wird.
Soll alsoe ein Stringliteral darstellen.
Gast #4429549
Lesenswert?
• ▲
▼
Wenn im Quelltext ein Stringliteral steht, z.B. "xyz\337", dann macht 
der C-Compiler daraus einen String mit 4 Zeichen + den Null-Terminator.

Wenn du aber diese 7 Zeichen (3Buchstabe, 1 Sonderzeichen, 3 Ziffern) 
über eine Schnittstelle (BT, Tastatur, ..) empfängst, hast du 7 Zeichen.
OP #4429602
Lesenswert?
• ▲
▼
DirkB schrieb:
> Wenn im Quelltext ein Stringliteral steht, z.B. "xyz\337", dann macht
> der C-Compiler daraus einen String mit 4 Zeichen + den Null-Terminator.
>
> Wenn du aber diese 7 Zeichen (3Buchstabe, 1 Sonderzeichen, 3 Ziffern)
> über eine Schnittstelle (BT, Tastatur, ..) empfängst, hast du 7 Zeichen.

Ok, das ist soweit klar. Kann ich an beliebiger Stelle des Strings einen 
weiteren String einfügen? Es würde ja gehen, wenn ich mein Zeichen im 
Quellcode ablege und dann nur noch an eine bestimmte Stelle hinzufüge.
Gast #4429712
Lesenswert?
• ▲
▼
Marco G. schrieb:
> Kann ich an beliebiger Stelle des Strings einen
> weiteren String einfügen?

Ja das geht.
Eine fertige Funktion (aus der Standard-Library) gibt es dafür nicht.
Es ist aber nicht schwierig.

Ein einzelnes Zeichen kannst du ganz leicht ersetzen.

(Wenn es ein Array ist. Bei einem Stringliteral geht es nicht, da es 
meist in geschützem Speicherbereich liegt)


Marco G. schrieb:
> Ok, das ist soweit klar.

Wirklich? Deine weiteren Fragen lassen mich daran zweifeln.

Du musst dafür Arrays und Strings in C begriffen haben.
Aber dann würdest du diese Fragen nicht stellen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren