ios 面试题 - 字符串反转

 本文来自 海之飞燕 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;

}

扫描二维码关注公众号,回复: 2544656 查看本文章

@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);

输出结果

原文 http://v2it.win/?p=870

猜你喜欢

转载自blog.csdn.net/huanghaiyan_123/article/details/81388609
今日推荐