String loeschen

Gast #1289799
Lesenswert?

Hallo,

ich habe ein

char Buffer[120];


diesen schreibe ich einmal ganz voll (120) zeichen.
und beim zweiten mal nur bis zu haelfte. (60)

jetzt ist der aber gemischt, die ersten 60 zeichen sind die
neuen und die zweiten 60 zeichen sind die alten.

gibt es eine moeglichkeit das wieder zurueck zu setzen
das Buffer nur noch 60 zeichen lang ist und die letzten 60 leer sind
als ob ich nur 60 zeichen in buffer geschrieben haette?
#1289807
Lesenswert?

Simon schrieb:
> Hallo,
>
> ich habe ein
>
> char Buffer[120];
>
>
> diesen schreibe ich einmal ganz voll (120) zeichen.
> und beim zweiten mal nur bis zu haelfte. (60)
>
> jetzt ist der aber gemischt, die ersten 60 zeichen sind die
> neuen und die zweiten 60 zeichen sind die alten.
>
> gibt es eine moeglichkeit das wieder zurueck zu setzen
> das Buffer nur noch 60 zeichen lang ist und die letzten 60 leer sind
> als ob ich nur 60 zeichen in buffer geschrieben haette?

Jeder String hat in C immer ein 0-Byte an der letzten Stelle. Damit wird 
das tatsächliche Stringende markiert. Alle stringverarbeitenden 
Funktionen halten sich an diese Konvention.
Um einen String zu löschen, genügt es daher, wenn du dort, wo du das 
Stringende haben möchtest ein 0-Byte hinschreibst.

Schreibs aber so

  Buffer[x] = '\0';
Gast #1289937
Lesenswert?

Also selbst das funzt nicht so wie ich das will.

die zeichen sind nach wie vor vorhanden.


Ich hab mal folgendes gemacht:
for (i = 0; i <= 75; i++) {Buffer[i] = 'X'; }

und siehe da, der Buffer enthaellt danach an den stellen die eigentlich 
weg sein sollen ein X.

Da muss es eine andere moeglichkeit geben.

Wenn ich den Buffer erstelle und sofort danach den per uart oder ans LCD 
sende, so wird nichts angezeigt.
habe ich den Buffer aber einmal voll geschrieben. so bekomme ich die 
Zeichen da drinne nicht mehr raus, nur ueberschreiben kann ich die noch
#1289942
Lesenswert?

Simon schrieb:

> und siehe da, der Buffer enthaellt danach an den stellen die eigentlich
> weg sein sollen ein X.
>
> Da muss es eine andere moeglichkeit geben.

Was willst du denn außer überschreiben noch machen? Den SRAM aus dem µC 
rausbauen? Woran erkennt deine Software wie viele Zeichen im String 
sind?

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