本文来自 海之飞燕 http://v2it.win/?p=870
@implementation NSString (Reverse)
- (NSString *)stringByReverse{
NSMutableString *string = [NSMutableString stringWithCapacity:self.length];
for (NSInteger i = self.length-1; i>=0; i--) {
NSLog(@"%@",[self substringWithRange:NSMakeRange(i, 1)]);
[string appendString:[self substringWithRange:NSMakeRange(i, 1)]];
}
return string;
}
@end
移动指针,交换字符
一直移动到所有字符都交换完毕,退出条件 begin >=end
void char_reverse(char *cha)
{
//指向第一个字符
char *begin = cha;
//指向最后一个字符
char *end = cha + strlen(cha) - 1;
while (begin < end) {
//交换前后两个字符串,同时移动指针
char temp = *begin;
*(begin++) = *end;
*(end--) = temp;
}
}
使用
NSString *originalString = @"hello world!";
NSString *newString = [originalString stringByReverse];
NSLog(@"OC reverse result is %@ \n", newString);
char ch[] = "hello world!";
char_reverse(ch);
printf("C reverse result is %s \n",ch);
输出结果