Wie ist folgende Funktion aufgebaut?
-
Hi,
wie ist folgende Funktion aufgebaut? hab dazu bei google nichts gefunden:
Prototyp:
int isprint (int);THX
-
Musst du ja nicht wissen verwend sie einfach
-
dali schrieb:
Musst du ja nicht wissen verwend sie einfach
Jaja, man muss ja nicht wissen wie man vögelt, bekomm einfach Kinder.
Nein mal im ernst: micht interessiert es wie diese Funktion aufgebaut ist.
-
Kannst dir das doch in den Quelldateien im Compiler deines Vertrauens anschauen. Ich weiß es nicht genau, aber ich glaube, dass es als konstantes 256 Elemente großes Array implementiert ist, von dem es eins für jede Locale gibt. Jedes Element ist dann eine Bitmaske die die Eigenschaften des entsprechenden Zeichens enthält. Die Funktionen isprint(), ischar(), isnumeric() usw ANDen dann das Bit aus der Maske um festzustellen, ob das gewünschte Zeichen ein druckbares Zeichen, ein Buchstabe, eine Ziffer und Groß- oder Kleinschreibung ist.
-
wie man vögelt, bekomm einfach Kinder
Wie man vögelt weißt du hoffentlich, wie dann der Prozess der Befruchtung usw genau ausschaut brauchst du NICHT zu wissen sonst hätten ja nur Biologen Kinder
-
ah quatsch, löschen....
-
iostream?
-
Wär eh witzig gewesen nur als Parameter hätte ich ein enum genommen um eben a** zu verhindern...
[cpp]
enum {
Vagina,
Mouth,
Hand,
Ear
}
-
Ich nehme an, dass es in diesem Fall meistens einfach
int isprint(int c) { return c < 128 && c > 31; }
ist. Jedenfalls auf ASCII-Systemen, wo 32 (also ' ') das kleinste druckbare Zeichen und 127 das letzte ist. Ich glaube, das ist ne Tilde, aber ganz sicher bin ich grad nicht.
-
0xdeadbeef schrieb:
Ich nehme an, dass es in diesem Fall meistens einfach
int isprint(int c) { return c < 128 && c > 31; }
ist. Jedenfalls auf ASCII-Systemen, wo 32 (also ' ') das kleinste druckbare Zeichen und 127 das letzte ist. Ich glaube, das ist ne Tilde, aber ganz sicher bin ich grad nicht.
Das wäre aber eine Implementierung die nicht mit verschiedenen Locales arbeiten würde und auch nicht effizient ist, wenn man etliche Funktionen dieser Art implementieren muss.
-
wenn man ein c oder c++ entwicklungsumgebung hat, kann man auch einfach in den header-files nach 'isprint' suchen....
-
Uh...Für isalpha und isalnum würd ich das mit der locale einsehen, aber die druckbaren Zeichen hängen doch nicht von der locale ab, oder?