gumbo123 Geschrieben 2. März 2008 Geschrieben 2. März 2008 Ich kenne mich mit der C-Programmierung noch nicht so gut aus. Ich möchte gerne wissen, wie ich den Inhalt einer Variable löschen kann. Zitieren
Hexagon Geschrieben 2. März 2008 Geschrieben 2. März 2008 Moin, Numerische? String? Boolean? Deine Frage ist doch etwas allgemein gehalten. Zitieren
gumbo123 Geschrieben 2. März 2008 Autor Geschrieben 2. März 2008 weis ich nicht :confused: die variable ist char Zitieren
Hexagon Geschrieben 2. März 2008 Geschrieben 2. März 2008 Dann fangen wir doch mal das lustige Rästelraten an. char deinVariablenName; deinVariablenName = '\0'; Zitieren
Guybrush Threepwood Geschrieben 2. März 2008 Geschrieben 2. März 2008 Du kannst den Inhalt nicht "zurücksetzten" weil es dafür keinen Standardwert gibt. Oft ist es so 0 oder NULL als leer gilt, aber in vielen Fällen macht das natürlich auch keinen Sinn weil die 0 gebraucht wird. Wenn du die Variable für deinen Programmablauf irgendwie "zurücksetzten" willst must du dir einen Wert überlegen der dafür passend ist und diesen dann einfach zuweisen. Das \0 oben ist einfach nur ein Steuerzeichen das für 0 (also nicht '0') steht und in C normalerweie das Ende eines Strings markiert... Zitieren
d.uNd.eE Geschrieben 6. März 2008 Geschrieben 6. März 2008 ich mach das immer so: char foo; foo = ' '; is zwar net "zurückgesetzt" aber, wenn man's irgendwo anhängt wirds net sichtbar und sieht aus wie leer Zitieren
TDM Geschrieben 7. März 2008 Geschrieben 7. März 2008 und sieht aus wie leer Sieht eher aus wie Leerzeichen. Zitieren
d.uNd.eE Geschrieben 10. März 2008 Geschrieben 10. März 2008 @ TDM ...was auf der Konsole nach nem Zeilenumbruch dann ja das gleiche wäre. Ich mach des, weil cFoo=NULL;immer ne Warung gibt :/ und auf prepros en masse hab ich kein bock^^ Zitieren
TDM Geschrieben 10. März 2008 Geschrieben 10. März 2008 @ TDM ...was auf der Konsole nach nem Zeilenumbruch dann ja das gleiche wäre. Schon... aber gelöscht heißt bei mir leer und nicht Leerzeichen. (Wuha, welch Wortspiel. ) Wenn ich ein char lösche dann meistens mit char t = ''; //vgl. char t = '\0' //ODER char t = 0; Ich mach des, weil cFoo=NULL; immer ne Warung gibt :/ und auf prepros en masse hab ich kein bock^^ Ja, logisch, weil #define NULL (void*) 0 Deswegen gleich direkt das Zeichenkettenendekennzeichen (0) zuweisen. Zitieren
Klotzkopp Geschrieben 10. März 2008 Geschrieben 10. März 2008 Schon... aber gelöscht heißt bei mir leer und nicht Leerzeichen. Die einzigen Variablen, die man in C oder C++ wirklich "löschen" kann, sind Zeiger, denn nur dort gibt es einen Wert, der ausdrücklich dafür reserviert ist, dass der Zeiger auf "nichts" zeigt: Der Nullzeiger. Bei allen anderen Typen ist das ein zweifelhaftes Vorhaben. Ein int oder ein char hat immer irgendeinen Wert, er kann nicht leer oder gelöscht sein. Man kann natürlich willkürlich einen der möglichen Werte herauspicken und so tun, als wäre dies ein "Leer"-Wert. Man muss sich aber dann im Klaren sein, dass man damit auf einen möglichen gültigen Wert verzichtet. Wenn man eine Leer-Kennzeichnung braucht, würde ich im Zweifel immer dazu raten, diesen Status in einer zusätzlichen Bool-Variablen zu transportieren, und nicht willkürlich einen gültigen Wert dazu missbrauchen. Ja, logisch, weil #define NULL (void*) 0 Hinweis am Rande: Das gilt nur für C, nicht für C++. Zitieren
TDM Geschrieben 10. März 2008 Geschrieben 10. März 2008 Hinweis am Rande: Das gilt nur für C, nicht für C++. Es ging doch um C, wenn ich mich nicht täusche. #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif Naja, ich hab irgendwo mal gelesen, dass NULL in C++ lt. Stroustrup untoll sei, von daher verzichte ich weitest gehend darauf. Zitieren
Klotzkopp Geschrieben 10. März 2008 Geschrieben 10. März 2008 Es ging doch um C, wenn ich mich nicht täusche. Richtig. Deswegen war der Hinweis ja auch nur am Rande Naja, ich hab irgendwo mal gelesen, dass NULL in C++ lt. Stroustrup untoll sei, von daher verzichte ich weitest gehend darauf.NULL ist in C++ ein int, was beim Überladen manchmal zu Überraschungen führen kann. Das soll im neuen Standard aber verbessert werden. Das wird jetzt aber komplett OT. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.