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"
Compliance
CHARREPL() is compatible with CT3’s CHARREPL().
Platforms
All
Files
Source is charrepl.c, library is ct3.
Seealso
WORDREPL(), POSREPL(), RANGEREPL(), CSETREF()