// 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...
Yes of course, you're right. Perhaps I should have pointed that out
to the OP but didn't think of it because I use it in a app which is a
pale clone of Accessorizer, that is, the string it's reversing is a
type and variable declaration. Reading it backwards gives me the
variable name before any asterisks or types, so I can work out (in the
code) quickly whether the variable is a pointer or a primitive type.
Ron
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com