Asc
Returns the corresponding ASCII or Unicode integer representation of a character
Syntax
`
Declare Function Asc Overload ( ByRef str As Const String, ByVal position As Integer = 1 ) As UInteger
Declare Function Asc ( ByVal str As Const ZString Ptr, ByVal position As Integer = 1 ) As UInteger
Declare Function Asc ( ByVal str As Const WString Ptr, ByVal position As Integer = 1 ) As UInteger
`
Usage
`
result = Asc( str [, position ] )
`
Parameters
`str`
The source string.
`position`
The position in the string of a character.
Return Value
The ASCII or Unicode integer representation of the character at `position` in `str`.
Description
If `str` is a `String` or a `ZString`, an ASCII code value is returned.
If `str` is a `WString`, a Unicode code value is returned.
The function returns zero (0) if the string is a zero length string, `position` is less than one (1), or `position` is greater than the number of characters in `str`.
`Chr` performs the opposite function for ASCII strings, while `WChr` is the opposite for Unicode strings, returning a string containing the character represented by the code passed as an argument.
Example
`
Print "the ascii code of 'a' is:"; Asc("a")
Print "the ascii code of 'b' is:"; Asc("abc", 2)
`
will produce the output:

    the ascii code of 'a' is: 97
    the ascii code of 'b' is: 98

Unicode example (Note to documentation editors: don't put inside %%(qbasic) markers or the Russian text will disappear!)

`dim a as wstring * 11 a = "Привет, мир" print "the Unicode of the second char of " & a & " is: " & asc(a)`
will produce the output:

`the Unicode of the second char of Привет, мир is: 1088`

Platform Differences

- DOS does not support the wide-character string version of `Asc`.

Differences from QB

- The optional `position` argument is new to FreeBASIC.
- QB does not support the wide-character string version of `Asc`

See also

- ASCII Character Codes
- `Chr`
- `Str`
- `Val`