Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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.

weis ich nicht :confused:

die variable ist char

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...

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

@ 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^^

@ 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. :D)

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. ;)

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++.
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.

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.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.