// Do the reversing with the help of an array of chars
int i, j;
const int stringLength = [aString length];
char reverseChars[stringLength];
for (i = stringLength - 1, j = 0; i >= 0; i--, j++)
{
char c = [aString characterAtIndex:i];
reverseChars[j] = c;
}
reverseChars[j] = '\0';// create a C (UTF8) string by adding a null
char
NSString *backwardsString = [NSString
stringWithUTF8String:reverseChars];
return backwardsString;
}
There are a few problems with this method, e.g. it won't work with non-
ASCII characters, it'll probably blow up if the string is ~10,000
characters or longer, the ints need to be NSUIntegers, and this ought
to be a category method that works on the receiver. I'd use unichar,
NSUInteger, malloc(), and -
initWithCharactersNoCopy:length:freeWhenDone: at the least...