Funktion("TEXT") => Frage zu "TEXT"
-
Hallo!
printf(Funktion("Text")) => ich möchte nun auf "Text" zugreifen und diesen in der Funktion verändern!
Geht das? Ist ja soweit ich weiß const char*void Funktion(char *txt)
{
if(strlen(txt)>0) txt[0]='!';
}Geht darum, den Text immer gleich in das C Programm reinschreiben zu können, und dann erst auf die Codepage zu konvertieren, die Drucker oder LCD verwendet.
-
Das geht so einfach nicht - "Text" ist ein Stringliteral; was du da vorhast, ist etwa so, als würdest du
1 = 2;
schreiben.
Wenn du in etwas rumschreiben willst, musst du sicherstellen, dass es in Speicher liegt, der dir gehört. Die einfachste Methode, das zu tun, ist
char mein_buffer[] = "Text"; printf(Funktion(mein_buffer));
zu schreiben. Damit wird ein Bereich auf dem Stack angelegt und mit "Text" initialisiert - darin kannst du dann herumschreiben, soviel du willst. Du musst aber vorsichtig sein, dass du nicht über das Ende des Buffers hinausschreibst, sonst kann alles mögliche passieren. Mit [] wird der Buffer genau so lang gemacht, dass "Text" genau hineinpasst (5 Byte); wenn du etwas hintendran hängen willst, musst du eine entsprechend höhere Grenze setzen, etwa
char mein_buffer[100] = "Text"; /* Platz für 100 Byte, d.h. 99 Buchstaben + Sentinel */
-
Ja habs fast befürchtet dass es ohne Buffer nicht geht.
Danke!