I am not sure what you mean by trying to avoid C functions. I hope this does not include avoiding the frameworks and foundational libraries that OS X and iOS offer you when developing an app, like, for instance, the NSCharacterSet class which provides exactly what you need in a Unicode compatible implementation.
To expand on Matt's answer, bringing it a little closer to your question's requirements:
import UIKit
let testString = "Åke röstet un café in Владивосток!"
let lowerCase = NSCharacterSet.lowercaseLetterCharacterSet()
let upperCase = NSCharacterSet.uppercaseLetterCharacterSet()
for currentCharacter in testString.utf16 {
if lowerCase.characterIsMember(currentCharacter) {
println("Character code \(currentCharacter) is lowercase.")
} else if upperCase.characterIsMember(currentCharacter) {
println("Character code \(currentCharacter) is UPPERCASE.")
} else {
println("Character code \(currentCharacter) is neither upper- nor lowercase.")
}
}
Swift 3
let testString = "Åke röstet un café in Владивосток!"
let lowerCase = CharacterSet.lowercaseLetters
let upperCase = CharacterSet.uppercaseLetters
for currentCharacter in testString.unicodeScalars {
if lowerCase.contains(currentCharacter) {
print("Character code \(currentCharacter) is lowercase.")
} else if upperCase.contains(currentCharacter) {
print("Character code \(currentCharacter) is UPPERCASE.")
} else {
print("Character code \(currentCharacter) is neither upper- nor lowercase.")
}
}