SYNOPSIS
        #include <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>

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

GESCHICHTE
        Eingefuehrt in LDMud 3.2.7.

SIEHE AUCH
        regreplace(E)
