Objective-C:字符串的反转Reverse

简介:

OC中字符串的反转方式可以用两种方式来处理:

第一种:从头到尾取出字符串的每一个字符,然后将其从尾到头添加到可变的字符串中,最后输出即可。

第二种:将OC内部的字符串转换为C语言中的字符串,然后动态分配一个数组,然后将字符串内容拷贝到数组中,进行首尾交换操作。共进行数组长度/2次操作。

 

方式一:OC版本

复制代码
 1 -(NSMutableString*)Reverse
 2 {
 3     NSUInteger length = [self length];
 4     NSMutableArray *array = [NSMutableArray arrayWithCapacity:length];
 5     
 6     for(long i=length-1; i>=0; i--)
 7     {
 8         unichar c = [self characterAtIndex:i];
 9         [array addObject:[NSString stringWithFormat:@"%c",c]];
10     }
11     
12     
13     NSMutableString *str = [NSMutableString stringWithCapacity:length];
14     for(int i=0; i<=length-1; i++)
15     {
16         [str appendString:array[i]];
17     }
18     return str;
19  }@end
复制代码

 

方式二:C语言版本

复制代码
 1 @implementation NSString (Reverse)
 2 -(NSMutableString*)Reverse
 3 {
 4     const char *str = [self UTF8String];
 5     NSUInteger length = [self length];
 6     char *pReverse = (char*)malloc(length+1);//动态分配空间
 7     strcpy(pReverse, str);
 8     for(int i=0; i<length/2; i++)
 9     {
10         char c = pReverse[i];
11         pReverse[i] = pReverse[length-i-1];
12         pReverse[length-i-1] = c;
13     }
14     NSMutableString *pstr = [NSMutableString stringWithUTF8String:pReverse];
15     free(pReverse);
16     return pstr;
17 }
18 @end
复制代码

 

  主函数测试:

复制代码
 1 //  main.m
 2 //  字符串的反转
 3 //
 4 //  Created by ma c on 15/8/18.
 5 //  Copyright (c) 2015年. All rights reserved.
 6 //
 7 
 8 #import <Foundation/Foundation.h>
 9 #import "NSString+Reverse.h"
10 int main(int argc, const char * argv[])
11 {
12     @autoreleasepool
13     {
14         NSMutableString *string = [NSMutableString stringWithFormat:@"XYQ-CHINA"];
15         NSString *str = [NSString stringWithString:[string Reverse]];
16         NSLog(@"%@",str);
17     }
18     return 0;
19 }
复制代码

    测试结果如下:

2015-08-18 19:42:56.696 字符串的反转[2222:136571] ANIHC-QYX
Program ended with exit code: 0

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!


本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4740415.html,如需转载请自行联系原作者
目录
相关文章
|
机器学习/深度学习 API iOS开发
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(一)
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(一)
182 0
|
存储 自然语言处理 Java
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(二)
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(二)
253 0
|
JavaScript 前端开发 iOS开发
Javascript与Objective-C 字符串与数组的方法类比
table {border-collapse:collapse;} table td {border:1px solid #ccc;} String vs NSString JavaScript string ...
689 0
|
iOS开发 索引
Objective-C: 字符串NSString与NSMutableString
      字符串算是OC中非常重要和常用的一部分内容,OC中的字符串与我之前在学习C,C++,Java中的字符串有一定的不同,它非常类似于C++中容器的概念,但用法却与之还是有很大的不同,也许是因为OC的语法就与其他我们常用的编程语言不尽相同。
648 0
|
iOS开发 MacOS
Objective-C字符串处理
NSLog(@"字符串处理"); //获得字符串长度 NSString* str1=@"MAC OS Pro"; NSLog(@"长度是 %d",[str1 length]); //两个字符串连接 NSString* str2=@"MAC OS Pro"; NSStrin...
695 0
|
7月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
430 2