1. Index
  2. Shell
  3. C
  4. POSIX
  5. JavaScript

Zeichenketten

Eine Zeichenkette besteht aus einer Reihung von Zeichen, die durch ein NUL-Zeichen abgeschlossen wird.

string.h

size_t strlen (const char * s) Länge der Zeichenkette
size_t strnlen (const char * s, size_t n) Länge des Präfix
size_t strxfrm (char * dest, const char * src, size_t n) Präfix lokalisieren
char * strcpy (char * dest, const char * src) Unsicher kopieren
char * stpcpy (char * dest, const char * src) Dito, Zeiger auf Ende
char * strncpy (char * dest, const char * src, size_t n) Präfix kopieren
char * stpncpy (char * dest, const char * src, size_t n) …Zeiger auf Ende
size_t strlcpy (char * dest, const char * src, size_t n) Terminierung garantiert
char * strcat (char * dest, const char * src) Zeichnkette anhängen
char * strncat (char * dest, const char * src, size_t n) Präfix anhängen
size_t strlcat (char * dest, const char * src, size_t n) Mit Terminierung anhängen
char * strchr (const char * s, int c) Zeichen suchen
char * strchrnul (const char * s, int c) Dito, aber nie NULL
char * strrchr (const char * s, int c) Rückwärts suchen
char * strrchrnul (const char * s, int c) …aber nie NULL
char * strpbrk (const char * s, const char * accept) Zeichen aus Menge suchen
size_t strspn (const char * s, const char * accept) Länge des Präfixes
size_t strcspn (const char * s, const char * reject) …ohne diese Zeichen
char * strstr (const char * haystack, const char * needle) Zeichenkette suchen
char * strcasestr (const char * haystack, const char * needle) …ohne groß/klein
int strcmp (const char * s1, const char * s2) Lexikographisch,
int strncmp (const char * s1, const char * s2, size_t n) Ein Präfix,
intstrcoll (const char * s1, const char * s2) Lokalisiert oder
intstrverscmp (const char * s1, const char * s2; Numerisch sortieren
char * strtok (char * s, const char * delim) Zeichenkette trennen
char * strtok_r (char * s, const char * delim, char ** save) …Position in save
char * strsep (char ** s, const char * delim) …Position in s
char * strdup (const char * s) Zeichenkette auf Heap
char * strdupa (const char * s) Zeichenkette auf Stack
char * strndup (const char * s, size_t n) Präfix auf Heap kopieren
char * strndupa (const char * s, size_t n) Präfix auf Stack kopieren
char * strfry (char * s) Anagramm bilden
char *strerror (int errnum) Fehlercode beschreiben
int strerror_r (int errnum, char * buf, size_t n) Fehlercode im Puffer
char * strsignal (int signum) Signal beschreiben

strings.h

Zeichenketten ohne Beachtung der Groß-/Kleinschreibung vergleichen.

int strcasecmp (const char * s1, const char * s2) Zeichenkette vergleichen
int strcasecmp_l (const char * s1, const char * s2, locale_t locale)
int strncasecmp (const char * s1, const char * s2, size_t n) Präfix vergleichen
int strncasecmp_l (const char * s1, const char * s2, size_t n, locale_t locale)
int ffs (int i) Index des ersten Bits
int ffsl (long i)
int ffsll (long long i)

stdarg.h

Variable Argumentlisten

typedefva_list
void va_start (va_list ap, last)
type va_arg (va_list ap, type)
void va_end (va_list ap)
void va_copy (va_list dest, va_list src)
int vprintf ( const char * format, va_list ap)
int vfprintf (FILE * fp, const char * format, va_list ap)
int vsprintf (char * str, const char * format, va_list ap)
int vsnprintf (char * str, size_t size, const char * format, va_list ap)
int vscanf ( const char * format, va_list ap)
int vsscanf (const char * str, const char * format, va_list ap)
int vfscanf (FILE * fp, const char * format, va_list ap)
%c Zeichen
%d Ganzzahl
%f Gleitkommazahl

wctype.h

Mittlerweile hat sich UTF-8 als Kodierung für Multibyte-Zeichenketten durchgesetzt. POSIX definiert jeweils noch eine Variante mit Suffix _l, die als zusätzlichen Parameter die Lokalisierung akzeptiert.

int iswalnum (wint_t c)
int iswalpha (wint_t c)
int iswblank (wint_t c)
int iswcntrl (wint_t c)
typedefwctype_t
int iswctype (wint_t c, wctype_t category)
int iswdigit (wint_t c)
int iswgraph (wint_t c)
int iswlower (wint_t c)
int iswprint (wint_t c)
int iswpunct (wint_t c)
int iswspace (wint_t c)
int iswupper (wint_t c)
int iswxdigit (wint_t c)
int iswblank (wint_t c)
typedefwctrans_t
wint_t towctrans (wint_t c, wctrans_t category)
wint_t towlower (wint_t c)
wint_t towupper (wint_t c)

stdlib.h

int mblen (const char * mb, size_t n) Anzahl Oktette
int wctomb ( char * mb, wchar_t wc ) 16-Bit – Multibyte
int mbtowc (wchar_t * wc, const char * mb, size_t n) Multibyte – 16-Bit
size_t mbstowcs (wchar_t * wc, const char * mb, size_t n) Multibyte – 16-Bit
size_t wcstombs ( char * mb, const wchar_t * wc, size_t n) 16-Bit – Multibyte

uchar.h

Multibyte-Zeichen konvertieren.

typedef mbstate_t Zwischenstand
typedef char16_t 16-Bit Unicode
typedef char32_t 32-Bit Unicode
size_t c16rtomb (char * mb, char16_t c16, mbstate_t * s) 16-Bit – Multibyte
size_t c32rtomb (char * mb, char32_t c32, mbstate_t * s) 32-Bit – Multibyte
size_t mbrtoc16 (char16_t * c16, const char * mb, size_t max, mbstate_t * s) Multibyte – 16-Bit
size_t mbrtoc32 (char32_t * c32, const char * mb, size_t max, mbstate_t * s) Multibyte – 32-Bit

wchar.h

typedef wint_t Quadrupelbyte
typedef wchar_t Doppelbyte
wint_t btowc (int c) Konvertiert Oktett in Quadrupel
int wctob (wint_t c) Konvertiert Quadrupel in Oktett oder liefert EOF
int wcwidth (wchar_t c) Liefert Spaltenbreite eines Zeichens
int wcswidth (const wchar_t * s, size_t n) Berechnet Spaltenbreite für Zeichenkette
Datenstrom
FILE *open_wmemstream(wchar_t ** ptr, size_t * sizeloc) Operiert auf einem dynamisch wachsenden Puffer
wint_t fgetwc ( FILE * fp)
wint_t fputwc (wchar_t c, FILE * fp)
wchar_t * fgetws (wchar_t * s, int n, FILE * fp)
int fputws (const wchar_t * s, FILE * fp)
int fwide ( FILE * fp, int mode)
wint_t getwc ( FILE * fp)
wint_t getwchar (void)
wint_t putwc (wchar_t c, FILE * fp)
wint_t putwchar (wchar_t c)
wint_t ungetwc (wint_t c, FILE * fp)
Formatierung
int fwscanf ( FILE * fp, const wchar_t * format, ...)
int fwprintf ( FILE * fp, const wchar_t * format, ...)
int vfwscanf ( FILE * fp, const wchar_t * format, va_list arg)
int vfwprintf ( FILE * fp, const wchar_t * format, va_list arg)
int wscanf ( const wchar_t * format, ...)
int wprintf ( const wchar_t * format, ...)
int vwscanf ( const wchar_t * format, va_list arg) Standardeingabe
int vwprintf ( const wchar_t * format, va_list arg) Standardausgabe
int swscanf (const wchar_t * s, const wchar_t * format, ...)
int swprintf ( wchar_t * s, size_t n, const wchar_t * format, ...)
int vswscanf (const wchar_t * s, size_t n, const wchar_t * format, va_list arg)
int vswprintf ( wchar_t * s, size_t n, const wchar_t * format, va_list arg)
size_t wcsftime ( wchar_t * s, size_t n, const wchar_t * format, const struct tm * tm)
Multibyte
int mbsinit (const mbstate_t * ps) Setzt Zustand auf Anfang
size_t mbrlen ( const char * s, size_t n, mbstate_t * ps) Liefert Oktettzahl des nächsten Zeichens
size_t mbrtowc (wchar_t * pwc, const char * s, size_t n, mbstate_t * ps) Extrahiert ein Multibyte-Zeichen
size_t mbsrtowcs (wchar_t * dst, const char ** src, size_t len, mbstate_t * ps) Konvertiert Multibyte nach Wide
size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps) Konvertiert 16-Bit in Multibyte
size_t wcsrtombs (char * dst, const wchar_t ** src, size_t len, mbstate_t * ps) Konvertiert 16-Bit nach Multibyte
size_t wcsnrtombs (char * dst, const wchar_t ** src, size_t nwc, size_t len, mbstate_t * ps) Konvertiert Präfix
Zahlen
double wcstod (const wchar_t * nptr, wchar_t ** endptr)
float wcstof (const wchar_t * nptr, wchar_t ** endptr)
long double wcstold (const wchar_t * nptr, wchar_t ** endptr)
long long wcstoll (const wchar_t * nptr, wchar_t ** endptr, int base)
unsigned long long wcstoull (const wchar_t * nptr, wchar_t ** endptr, int base)
long wcstol (const wchar_t * nptr, wchar_t ** endptr, int base)
unsigned long wcstoul (const wchar_t * nptr, wchar_t ** endptr, int base)
Zeichenketten
wchar_t * wcsdup (const wchar_t * s)
wchar_t * wcscat ( wchar_t * s1, const wchar_t * s2)
int wcscmp (const wchar_t * s1, const wchar_t * s2)
int wcscoll (const wchar_t * s1, const wchar_t * s2)
wchar_t * wcscpy ( wchar_t * s1, const wchar_t * s2)
size_t wcscspn (const wchar_t * s1, const wchar_t * s2)
size_t wcslen (const wchar_t * s)
wchar_t * wcsncat ( wchar_t * s1, const wchar_t * s2, size_t n)
int wcsncmp (const wchar_t * s1, const wchar_t * s2, size_t n)
wchar_t * wcsncpy ( wchar_t * s1, const wchar_t * s2, size_t n)
size_t wcsspn (const wchar_t * s1, const wchar_t * s2)
wchar_t * wcsstr (const wchar_t * s1, const wchar_t * s2)
wchar_t * wcstok ( wchar_t * s1, const wchar_t * s2, wchar_t ** ptr)
size_t * wcsxfrm ( wchar_t s1, const wchar_t * s2, size_t n)
int wcscasecmp (const wchar_t * s1, const wchar_t * s2)
int wcsncasecmp (const wchar_t * s1, const wchar_t * s2, size_t n)
size_t wcsnlen (const wchar_t * s, size_t maxlen)
wctrans_t wctrans (const char * name)
Speicherbereiche
int * wmemcmp (const wchar_t s1, const wchar_t * s2, size_t n)
wchar_t * wmemcpy ( wchar_t * s1, const wchar_t * s2, size_t n)
wchar_t * wmemmove ( wchar_t * s1, const wchar_t * s2, size_t n)
wchar_t * wmemset ( wchar_t * s, wchar_t c, size_t n)
wchar_t * wcschr (const wchar_t * s, wchar_t c)
wchar_t * wcspbrk (const wchar_t * s1, const wchar_t * s2)
wchar_t * wcsrchr (const wchar_t * s, wchar_t c)
wchar_t * wcsstr (const wchar_t * s1, const wchar_t * s2)
wchar_t * wmemchr (const wchar_t * s, wchar_t c, size_t n)
wchar_t * wcpcpy (wchar_t * dest, const wchar_t * src)
wchar_t * wcpncpy (wchar_t * dest, const wchar_t * src, size_t n)

iconv.h

Zeichensatz konvertieren

typedef iconv_t
iconv_t iconv_open(const char * to, const char * from) Lädt Daten für Zeichensätze
size_t iconv (iconv_t cd, char ** inbuf, size_t * inbytesleft Eingabepuffer
char ** outbuf, size_t * outbytesleft) Ausgabepuffer
int iconv_close (iconv_t cd) Gibt verbrauchte Ressourcen frei

ctype.h

Für die Klassifizierung von Zeichen existiert jeweils noch eine Variante mit Suffix _l, die als zusätzlichen Parameter die Lokalisierung akzeptiert. Sonst wird die Umgebungsvariable LC_CTYPE gelesen.

int isdigit (int c) Ziffer ('0'...'9')
int isxdigit (int c) Hexadezimalziffer ('0'...'9','A'...'F','a'...'f')
int islower (int c) Kleinbuchstabe ('a'...'z')
intisupper (int c) Grossbuchstabe ('A'...'Z')
int isalpha (int c) Buchstabe ('A'...'Z','a'...'z')
int isalnum (int c) Alphanumerisches Zeichen ('0'...'9','A'...'Z','a'...'z')
int iscntrl (int c) Steuerzeichen (0...31, 127)
int isprint (int c) Druckbares Zeichen (32...126)
int isgraph (int c) Graphisches Zeichen ausser Leerzeichen (33...)
int ispunct (int c) Interpunktion (32...47, 58...63, 91...96, 123...126)
int isspace (int c) Leerraum (HT, LF, VT, FF, CR, SPACE)
int isblank (int c) Leerzeichen oder Tabulator (SPACE, HT)
int isascii (int c) Zeichen aus dem ASCII Alphabet
int toascii (int c) Löscht höherwertige Bits
int toupper (int c) Wandelt Klein- in Grossbuchstaben um
int tolower (int c) Wandelt Gross- in Kleinbuchstaben um
int _toupper (int c) Wandelt Klein- in Grossbuchstaben um
int _tolower (int c) Wandelt Gross- in Kleinbuchstaben um

Klassifizierungs-Matrix
Zeichen NUL SOH… HT LF VT FF CR SO… SP !… 0…9 :… A…Z [… a…z {…
iscntrl
isspace
isblank
isprint
ispunct
isxdigit A…F a…f
isdigit
isupper
islower

locale.h

Die Lokalisierung legt für Länder und Regionen typische Schreibweisen fest. Zum Beipsiel

#define LC_ALL
#define LC_COLLATE Sortierung (strcoll)
#define LC_CTYPE Klassifizierung (isupper)
#define LC_MESSAGES Nachrichten (catopen)
#define LC_MONETARY
#define LC_NUMERIC
#define LC_TIME
struct lconv
char * decimal_point
char * grouping
char * thousands_sep
struct lconv * localeconv (void)
typedef locale_t
char * setlocale (int category, const char * locale)
locale_t newlocale (int category, const char * locale, locale_t base)
locale_t uselocale (locale_t dataset)
locale_t duplocale (locale_t dataset)
locale_t freelocale (locale_t dataset)
LC_CTYPE_MASK
LC_NUMERIC_MASK
LC_TIME_MASK
LC_COLLATE_MASK
LC_MONETARY_MASK
LC_MESSAGES_MASK
LC_PAPER_MASK
LC_NAME_MASK
LC_ADDRESS_MASK
LC_TELEPHONE_MASK
LC_MEASUREMENT_MASK
LC_IDENTIFICATION_MASK

langinfo.h

char * nl_langinfo (nl_item item) Gibt Auskunft über die Lokalisierung
char * nl_langinfo_l (nl_item item, locale_t locale)
CODESET Name des verwendeten Zeichensatzes
YESEXPR Regulärer Ausdruck für Varianten von Ja
NOEXPR Regulärer Ausdruck für Varianten von Nein
D_T_FMT Formatstring für strftime für Datum und Uhrzeit
D_FMT Formatstring für strftime für Datum
T_FMT Formatstring für strftime für Uhrzeit
DAY_1…7 Name des Wochentags beginnend bei Sonntag
MON_1…12 Name des Monats beginnend bei Januar
ABDAY_1…7 Abgekürzter Wochentag
ABMON_1…12 Abgekürzter Monatsname
RADIXCHAR Dezimaltrennzeichen
THOUSEP Trennzeichen für Tausend
CRNCYSTR Währungssymbol

nl_types.h

Kataloge, siehe LC_MESSAGES

typedef nl_catd
nl_catd catopen (const char * name, int flag)
char * catgets (nl_catd catalog, int setno, int msgno, const char * message)
int catclose (nl_catd catalog)
NL_SETD Used by gencat when no $set directive is specified in a message text source file. This constant can be passed as the value of set_id on subsequent calls to catgets() (that is, to retrieve messages from the default message set). The value of NL_SETD is implementation-defined.
NL_CAT_LOCALE Value that must be passed as the oflag argument to catopen() to ensure that message catalog selection depends on the LC_MESSAGES locale category, rather than directly on the LANG environment variable.

monetary.h

Landeswährung

ssize_t strfmon (char * str, size_t max, const char * format, ...) Formatiert double-Wert als Währungsbetrag
ssize_t strfmon_l (char * str, size_t max, locale_t locale, const char * format, ...) Dito für eine spezifische Lokalisierung
%FlagsWidth#Prefix.PrecFormat
Flags
=Char Verwende Füllzeichen.
^ Gruppiere Ziffern nicht.
( Schließe negative Werte in Klammern ein
+ Behandle Vorzeichen wie bei den Zahlen.
! Lasse das Währungssymbol weg.
- Richte all Felder linksbündig aus.
Format
i Stelle double-Variable im internationalen Währungsformat dar.
n Stelle double-Variable im nationalen Währungsformat dar.

wordexp.h

Wörter expandieren

typedef wordexp_t
size_t we_wordc
char ** we_wordv
size_t we_offs
int wordexp (const char * words, wordexp_t * pwordexp, int flags)
void wordfree ( wordexp_t * pwordexp)
WRDE_APPEND Füge weitere Worte hinzu.
WRDE_DOOFFS Anzahl der Null-Zeiger vor we_wordv.
WRDE_NOCMD Deaktiviere Substitution von Kommandos.
WRDE_REUSE Verwende den für pwordexp reservierten Speicher weiter.
WRDE_SHOWERR Leite stderr nicht nach /dev/null um.
WRDE_UNDEF Melde Fehler beim Versuch eine nicht definierte Variable zu expandieren.
WRDE_BADCHAR Ein Zeichen aus der Menge |&;<>(){} erscheint in unangemessenem Kontext.
WRDE_BADVAL Verweis auf nicht definierte Variable obwohl WRDE_UNDEF gesetzt ist.
WRDE_CMDSUB Substitution eines Kommandos verlangt obwohl WRDE_NOCMD gesetzt ist.
WRDE_NOSPACE Speicherverwaltungsfehler.
WRDE_SYNTAX Syntaxfehler wie zum Beispiel nicht balancierter Klammerausdruck oder nicht terminierte Zeichenkette.

regex.h

Muster vergleichen. Siehe auch fnmatch und glob für einfachere Mustererkennung.

typedef regex_t Opake Datenstruktur für regulären Ausdruck
size_t re_nsub Anzahl der geklammerten Unterausdrücke
int regcomp ( regex_t * preg, Konstruktur, kompiliert einen regulären Ausdruck
const char * regex, int cflags)
void regfree ( regex_t * preg) Destruktur, gibt den reservierten Speicher frei
typedef regmatch_t Element in der Trefferliste
regoff_t rm_so Start-Offset
regoff_t rm_eo End-Offset
intregexec (const regex_t * preg, Vergleicht Zeichenkette mit regulärem Ausdruck
const char * string,
size_t nmatch,
regmatch_t pmatch[], int eflags) Trefferliste für geklammerte Ausdrücke
size_t regerror (int errcode, Liefert Beschreibung zu einem Fehlercode
const regex_t * preg,
char * buf, size_t size)
REG_EXTENDED Verwende erweiterte reguläre Ausdrücke
REG_ICASE Ignoriere Groß-/Kleinschreibung
REG_NOSUB Werte keine geklammerten Ausdrücke aus
REG_NEWLINE Spezialbehandlung von Zeilenumbrüchen
REG_NOTBOL Das Symbol ^ nicht auf den Anfang der Zeichenkette anwenden
REG_NOTEOL Das Symbol $ nicht auf das Ende der Zeichenkette anwenden
REG_NOMATCH Ausdruck passt nich
REG_BADPAT Ungültiger Ausdruck
REG_BADRPT Ungültiger Ausdruck vor Multiplikator
REG_BADBR Ungültige Zahl in geschweiften Klammern
REG_ECOLLATE Ungültiges Element referenziert
REG_ECTYPE Ungültige Zeichenklasse
REG_EESCAPE Ungültiger schließender Backslash
REG_ESUBREG Ziffer ungültig oder Fehlerhaft
REG_EBRACK Ungleichgewicht bei eckigen Klammern
REG_EPAREN Ungleichgewicht bei runden Klammern
REG_EBRACE Ungleichgewicht bei geschweiften Klammern
REG_ERANGE Ungültige Bereichsangabe
REG_ESPACE Speicher erschöpft