SYNOPSIS
        #include <sys/strings.h>

        string trim(string str);
        string trim(string str, int where);
        string trim(string str, int where, string char);

BESCHREIBUNG
        Entfernt alle vorausgehenden und abschliessenden Zeichen <char> in
        einem String <str> und gibt den neuen String zurueck.

        <char> kann entweder ein oder mehrere Zeichen sein. Wird <char> nicht
        angegeben, wird standardmaessig der Leerschlag " \t" genutzt.

        Mit <where> kann angegeben werden, wo Zeichen entfernt werden:

            TRIM_LEFT   (1):        entfernt alle vorausgehenden
                                    Zeichen <char>
            TRIM_RIGHT  (2):        entfernt alle abschliessenden
                                    Zeichen <char>
            TRIM_BOTH   (3 oder 0): entfernt sowohl vorausgehende als auch
                                    abschliessende Zeichen <char>

BEISPIEL
        trim("    1234    ");                       ergibt: "1234"
        trim("    1234    ", TRIM_RIGHT);           ergibt: "    1234"
        trim("    1234    ", TRIM_BOTH, " 1");      ergibt: "234"

AENDERUNGEN
        Eingefuehrt in LDMud 3.2.7

SIEHE AUCH
        regreplace(E)
