iscntrl() ist definiert in der ctype
, die in C über ctype.h
, bzw. in C++ über cctype
eingebunden wird.
iscntrl() überprüft, ob das übergebene Zeichen eine Kontrollzeichen ist. Als Kontrollzeichen sind die ersten 32 ASCII-Codes (00-1F), sowie der letzte (7F) festgelegt. Die Kontrollzeichen enthalten unter anderem den Zeilenvorschub (0A: LF=LineFeed), Wagenrücklauf (0D: CR=CarriageReturn), die in einem Text in die nächste Zeile setzen, unsichtbare Steuerzeichen, wie den Tabulator (08: TAB). Ebenso fallen besondere Tasten, wie Escape (1B: ESC), BackSpace (07: BS) und Entfernen (7F: DEL) unter die Kontrollzeichen. Sie sind der ASCII-Tabelle zu entnehmen.
Alle Kontrollzeichen sind nicht sichtbar druckbar, somit entspricht iscntrl() der negierten Form von isprint().
Es wird ein Integer übergeben, ein char wird allerdings implizit in ein Integer konvertiert, so dass
iscntrl( 'c' );
ebenso syntaktisch korrekt ist.
#include <ctype.h> int iscntrl( int character );
character: der zu überprüfende ASCII Code
Return value: 0 für false, ein beliebiger anderer Wert für true
#include <ctype.h> #include <stdio.h> int main( void ) { char text[] = "\n\tWelcome2C programming!"; // Nächste Zeile (\n) + Tabulator (\t) int i = 0; while( iscntrl( text[ i ] )) i++; printf( "Die ersten %d Zeichen sind Kontrollzeichen, gefolgt vom ASCII Code %x (Zeichen %c)\n", i, text[ i ], text[ i ] ); return 0; }
Ausgabe: Die ersten 2 Zeichen sind Kontrollzeichen, gefolgt vom ASCII Code 57 (Zeichen W)