27 lines
1 KiB
Text
27 lines
1 KiB
Text
void local fn StringHasUniqueCharacters( string as CFStringRef )
|
|
long i, j, length = len( string )
|
|
|
|
if length == 0 then printf @"The string \"\" is empty and thus has no characters to compare.\n" : exit fn
|
|
|
|
printf @"The string: \"%@\" has %ld characters.", string, length
|
|
|
|
for i = 0 to length - 1
|
|
for j = i + 1 to length - 1
|
|
if ( fn StringIsEqual( mid( string, i, 1 ), mid( string, j, 1 ) ) )
|
|
CFStringRef duplicate = mid( string, i, 1 )
|
|
printf @"The first duplicate character, \"%@\", is found at positions %ld and %ld.", duplicate, i, j
|
|
printf @"The hex value of \"%@\" is: 0X%x\n", duplicate, fn StringCharacterAtIndex( duplicate, 0 )
|
|
exit fn
|
|
end if
|
|
next
|
|
next
|
|
printf @"All characters in string are unique.\n"
|
|
end fn
|
|
|
|
fn StringHasUniqueCharacters( @"" )
|
|
fn StringHasUniqueCharacters( @"." )
|
|
fn StringHasUniqueCharacters( @"abcABC" )
|
|
fn StringHasUniqueCharacters( @"XYZ ZYX" )
|
|
fn StringHasUniqueCharacters( @"1234567890ABCDEFGHIJKLMN0PQRSTUVWXYZ" )
|
|
|
|
HandleEvents
|