=====Sorting the characters in a string=====
//by Richard Russell, October 2008//\\ \\ You can quickly and easily sort the elements of an **array** by using the [[http://www.bbcbasic.co.uk/bbcwin/manual/bbcwing.html#sortlib|SORTLIB]] library, but //BBC BASIC for Windows// does not directly provide the facility to sort the characters in a **string**. The code listed below allows you to do that.\\ \\ First you should initialise **SORTLIB** in the usual way, just once at the start of your program: \\ \\
INSTALL @lib$+"SORTLIB"
Sort% = FN_sortinit(0,0)
Change the parameters of **FN_sortinit** if necessary, as explained [[http://www.bbcbasic.co.uk/bbcwin/manual/bbcwing.html#sortinit|here]].\\ \\ The following function sorts a string into an ascending (or descending) sequence of characters:\\ \\
DEF FNsortstring(A$)
LOCAL C%, A&()
C% = LEN(A$)
DIM A&(C%)
$$^A&(0) = A$
CALL Sort%, A&(0)
= $$^A&(0)
This works by temporarily creating a **byte array**, copying the string into the array, sorting the byte array, and finally returning the contents of the array as a string.