Forum: Mikrocontroller und Digitale Elektronik Nullterminierung abfragen


von Peter Schmidt (Gast)


Lesenswert?

Hallo !
Folgende Sache...

Ich möchte gerne eine Nullterminierung am String abfragen.

if(xy[] == '\0')

Das wesentliche was mich interessiert ist aber,

wie muss ich meinen String aufbauen, damit dies auch richtig 
funktioniert?

char xy[256] = "666\0";  Zusatzfrage: ist mein String hier 5 Byte lang ?
                         oder zählt das \0 als 1 Zeichen ?
oder
char xy[256] = "666 ";
oder
char xy[256] = "6660";

Wäre nett, wenn mir jemand helfen könnten mit der Nullterminierung!!

Danke !!

von Karl H. (kbuchegg)


Lesenswert?

char xy[256] = "666";

Der Compiler fügt bei konstanten Strings wie "666" automatisch
immer das abschliessende '\0' Zeichen ein.

http://www.mikrocontroller.net/articles/FAQ#Wie_funktioniert_String-Verarbeitung_in_C.3F

von Peter Schmidt (Gast)


Lesenswert?

Danke für die Info!

Was ist, wenn ich doch die Nullterminierung explizit mit hinzufügen 
muss?
Wie muss ich dann dies programmieren?

von tgfd (Gast)


Lesenswert?

Naja bzgl. der Frage:
Explizit hinzufügen? Wie gesagt bei Literalen ala "foo"
ist das ganze schon 0 terminiert, da braucht man explizit
nix machen. Wenn du nen
char array[5] hast setzt array[4] = '\0'; das letzte
Byte auf 0. "Hinzufügen" ist das falsche Wort.

Glaub mir folgendes:

Trial and Error in C macht man nicht.
Das geht auf jeden Fall nach hinten los.
Leih dir Kernighan und Ritchie The C Programming Language
aus. Sind irgendwie 150 Seiten oder so.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.