# CHARREPL()

Replacement of characters

Syntax

  CHARREPL (<cSearchString>, <[@]cString>,
  <cReplaceString>, [<lMode>]) -> cString

Arguments

  <cSearchString> is a string of characters that should be replaced <[@]cString> is the processed string <cReplaceString> is a string of characters that replace the one of <cSearchString> [<lMode>] sets the replacement method (see description) Default: .F.

Returns

  <cString> the processed string

Description

  The CHARREPL() function replaces certain characters in <cString> with others depending on the setting of <lMode>. If <lMode> is set to .F., the function takes the characters of <cSearchString> one after the other, searches for them in <cString> and, if successful, replaces them with the corresponding character of <cReplaceString>. Be aware that if the same characters occur in both <cSearchString> and <cReplaceString>, the character on a certain position in <cString> can be replaced multiple times. if <lMode> is set to .T., the function takes the characters in <cString> one after the other, searches for them in <cSearchString> and, if successful, replaces them with the corresponding character of <cReplaceString>. Note that no multiple replacements are possible in this mode. If <cReplaceString> is shorter than <cSearchString>, the last character of <cReplaceString> is used as corresponding character for the the "rest" of <cSearchString>. One can omit the return value by setting the CSETREF() switch to .T., but then one must pass <cString> by reference to get the result.

Examples

          ? charrepl ("1234", "1x2y3z", "abcd")            // "axbycz"
          ? charrepl ("abcdefghij", "jhfdb", "1234567890") // "08642"
          ? charrepl ("abcdefghij", "jhfdb", "12345")      // "55542"
          ? charrepl ("1234", "1234", "234A")              // "AAAA"
          ? charrepl ("1234", "1234", "234A", .T.)         // "234A"
    Tests
          charrepl ("1234", "1x2y3z", "abcd") == "axbycz"
          charrepl ("abcdefghij", "jhfdb", "1234567890") == "08642"
          charrepl ("abcdefghij", "jhfdb", "12345") == "55542"
          charrepl ("1234", "1234", "234A") == "AAAA"
          charrepl ("1234", "1234", "234A", .T.) == "234A"

Status

  Ready

Compliance

  CHARREPL() is compatible with CT3's CHARREPL().

Platforms

  All

Files

  Source is charrepl.c, library is ct3.

See Also

- CSETREF()