CHARSUB()

Subtracts corresponding ASCII value of two strings

Syntax

CHARSUB (<[@]cString1>, <cString2>) --> cSubString

Arguments

<[@]cString1> first string <cString2> second string

Returns

<cSubString> string with subtracted ASCII values

Description

The CHARSUB() function constructs a new string from the two strings passed as parameters. To do this, it subtracts the ASCII values of the corresponding characters of both strings and places a character in the resulting string whose ASCII value equals to that difference (modulo 256). If the first string is passed by reference, the resulting string is stored in <cString1>, too. By setting the CSETREF()-switch to .T., the return value can be omitted. If <cString2> is shorter than <cString1> and the last character of <cString2> has been processed, the function restarts with the first character of <cString2>.
Examples
      ? charsub ("012345678", chr(1)) --> "/01234567"
      ? charsub ("123456789", chr(255)) --> "23456789:"
      ? charsub ("9999", chr(0)+chr(1)+chr(2)+chr(3)) --> "9876"
Tests
      charsub ("123456789", chr(1)) == "012345678"
      charsub ("123456789", chr(1)+chr(2)) == "002244668"
      charsub ("012345678", chr(255)) == "123456789"
      charsub ("012345678", chr(255)+chr(254)) == "133557799"
Status

Ready

Compliance

CHARSUB() is a new function that is only available in Harbour's CT3 lib.

Platforms

All

Files

Source is charop.c, library is ct3.

See Also