/*  $DOC$
 *  $FUNCNAME$
 *      CHARONLY()
 *  $CATEGORY$
 *      HBCT string functions
 *  $ONELINER$
 *      Intersectional set of two strings based on characters
 *  $SYNTAX$
 *      CHARONLY (<cThisCharactersOnly>, <cString>) -> cReducedString
 *  $ARGUMENTS$
 *      <cThisCharactersOnly>   specifies the characters that must not be
 *                              deleted in <cString>.
 *      <cString>               is the string that should be processed
 *  $RETURNS$
 *      <cReducedString>        A string with all characters deleted but those
 *                              specified in <cThisCharactersOnly>.
 *  $DESCRIPTION$
 *      The CHARONLY() function calculates the intersectional set of two
 *      strings. To do this, it deletes all characters from <cString> that
 *      do not appear in <cThisCharacterOnly>.
 *  $EXAMPLES$
 *      ? CHARONLY("0123456789", "0211 - 38 99 77")  //  "0211389977"
 *      ? CHARONLY("0123456789", "0211/ 389 977")    //  "0211389977"
 *  $TESTS$
 *      CHARONLY("0123456789", "0211 - 38 99 77") == "0211389977"
 *      CHARONLY("0123456789", "0211/ 389 977")   == "0211389977"
 *  $STATUS$
 *      Ready
 *  $COMPLIANCE$
 *      CHARONLY() is compatible with CT3's CHARONLY().
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Source is charonly.c, library is ct3.
 *  $SEEALSO$
 *      CHARREM()   WORDONLY()   WORDREM()
 *  $END$
 */
/*  $DOC$
 *  $FUNCNAME$
 *      WORDONLY()
 *  $CATEGORY$
 *      HBCT string functions
 *  $ONELINER$
 *      Intersectional set of two strings based on double characters
 *  $SYNTAX$
 *      WORDONLY (<cThisDoubleCharactersOnly>, <cString>) -> cReducedString
 *  $ARGUMENTS$
 *      <cThisDoubleCharactersOnly> specifies the double characters that must
 *                                  not be deleted in <cString>.
 *      <cString>                   is the string that should be processed
 *  $RETURNS$
 *      <cReducedString>        A string with all double characters deleted
 *                              but those specified in <cThisCharactersOnly>.
 *  $DESCRIPTION$
 *      The WORDONLY() function calculates the intersectional set of two
 *      strings based on double characters. To do this, it deletes all double
 *      characters from <cString> that do not appear in <cThisDoubleCharacterOnly>.
 *  $EXAMPLES$
 *      ? WORDONLY("AABBCCDD", "XXAAYYBBZZ")  // "AABB"
 *      ? WORDONLY("AABBCCDD", "XAAYYYBBZZ")  // "BB"
 *  $TESTS$
 *      WORDONLY("AABBCCDD", "XXAAYYBBZZ") == "AABB"
 *      WORDONLY("AABBCCDD", "XAAYYYBBZZ") == "BB"
 *  $STATUS$
 *      Ready
 *  $COMPLIANCE$
 *      WORDONLY() is compatible with CT3's WORDONLY().
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Source is charonly.c, library is ct3.
 *  $SEEALSO$
 *      CHARONLY()   CHARREM()   WORDREM()
 *  $END$
 */
/*  $DOC$
 *  $FUNCNAME$
 *      CHARREM()
 *  $CATEGORY$
 *      HBCT string functions
 *  $ONELINER$
 *      Removes characters from a string
 *  $SYNTAX$
 *      CHARREM (<cDeleteThisCharacters>, <cString>) -> cReducedString
 *  $ARGUMENTS$
 *      <cDeleteThisCharacters>   specifies the characters that should
 *                                be deleted in <cString>
 *      <cString>)                is the string that should be processed
 *  $RETURNS$
 *      <cReducedString>          is a string where the characters specified
 *                                in <cDeleteThisCharacters> are deleted
 *  $DESCRIPTION$
 *      The CHARREM() function deletes the characters specified in
 *      <cDeleteThisCharacters> from <cString>.
 *  $EXAMPLES$
 *      ? CHARREM(" ", " 1  2  ")   // "12"
 *      ? CHARREM("3y", "xyz123")   // "xz12"
 *  $TESTS$
 *      CHARREM(" ", " 1  2  ") == "12"
 *      CHARREM("3y", "xyz123") == "xz12"
 *  $STATUS$
 *      Ready
 *  $COMPLIANCE$
 *      CHARREM() is compatible with CT3's CHARREM().
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Source is charonly.c, library is ct3.
 *  $SEEALSO$
 *      CHARONLY()   WORDONLY()   WORDREM()
 *  $END$
 */
/*  $DOC$
 *  $FUNCNAME$
 *      WORDREM()
 *  $CATEGORY$
 *      HBCT string functions
 *  $ONELINER$
 *      Removes characters from a string
 *  $SYNTAX$
 *      WORDREM (<cDeleteThisDoubleCharacters>, <cString>) -> cReducedString
 *  $ARGUMENTS$
 *      <cDeleteThisDoubleCharacters>   specifies the double characters that
 *                                      should be deleted in <cString>
 *      <cString>)                      is the string that should be processed
 *  $RETURNS$
 *      <cReducedString>          is a string where the double characters
 *                                specified in <cDeleteThisDoubleCharacters>
 *                                are deleted
 *  $DESCRIPTION$
 *      The WORDREM() function deletes the double characters specified in
 *      <cDeleteThisDoubleCharacters> from <cString>.
 *  $EXAMPLES$
 *      ? WORDREM("abcd", "0ab1cd")   // "0ab1"
 *      ? WORDREM("abcd", "ab0cd1")   // "0cd1"
 *  $TESTS$
 *      WORDREM("abcd", "0ab1cd") == "0ab1"
 *      WORDREM("abcd", "ab0cd1") == "0cd1"
 *  $STATUS$
 *      Ready
 *  $COMPLIANCE$
 *      WORDREM() is a new function available only in Harbour's CT3.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Source is charonly.c, library is ct3.
 *  $SEEALSO$
 *      CHARONLY   CHARREM()   WORDREM()
 *  $END$
 */
