/// 字符反转
/// @“hello,world!”–>@“!dlrow,olleh”
- (void)charReverse:(NSString *)originStr {//L+R==cnt-1
NSMutableString *reverseStr = [NSMutableString stringWithString:originStr];
for (NSInteger i = 0; i < (originStr.length + 1)/2; i++) {
[reverseStr replaceCharactersInRange:NSMakeRange(i, 1) withString:[originStr substringWithRange:NSMakeRange(originStr.length - i - 1,1)]];
[reverseStr replaceCharactersInRange:NSMakeRange(originStr.length - i - 1, 1) withString:[originStr substringWithRange:NSMakeRange(i, 1)]];
}
}
/// 字符反转
/// @“hello,world!”–>@“!dlrow,olleh”
- (void)charReverseOne:(NSString *)originStr {
//C语法
//chs表示指针变量(地址)
char chs[originStr.length];
//OC语法:(NSString *)结构特征表示指针变量(地址)
//内存拷贝//从src所指向的内存区域中复制cnt个字节送到dest所指向的内存区域
//函数返回dest指针
memcpy(chs,[originStr cStringUsingEncoding:NSASCIIStringEncoding], originStr.length);
NSLog(@“reverseChar:%s”,chs);
//设置字符指针
char *begin = chs;
char *end = chs + strlen(chs) - 1;
//遍历字符数组(指针所指向的内存区进行内容交换并移动指针到对应下个位置至begin>=end )
while (begin < end) {
char temp = *begin;
*(begin++) = *end;
*(end–) = temp;
}
NSLog(@“reverseChar:%s”,chs);
}