ReversibleString(81)
来源:互联网 发布:网络调查问卷app 编辑:程序博客网 时间:2024/05/16 06:57
#import <Foundation/NSString.h>#import <Foundation/NSMethodSignature.h>#import <Foundation/NSInvocation.h>#import <stdio.h>#import <stdlib.h>@interface ReversibleString:NSObject { NSString *content;}- (id)initWithString:(NSString *)string;- (id)reversedString;@end@implementation ReversibleString- (id)initWithString:(NSString *)string { if ((self = [super init]) != nil) content = string; return self;}- (id)reversedString { unichar *buffer; //将Unicode字符串反转 int length, i, j, tmp; id reversed; if ((length = (int)[content length]) <= 0) return @""; buffer = malloc(sizeof(unichar) * length); [content getCharacters:buffer range:NSMakeRange(0, length)]; for (i = 0,j = length - 1; i < j; i++, j--) tmp = buffer[i], buffer[i] = buffer[j], buffer[j] = tmp; reversed = [NSString stringWithCharacters:buffer length:length]; free(buffer); return reversed;}- (void)forwardInvocation:(NSInvocation *)anInvocation { SEL sel = [anInvocation selector]; if ([content respondsToSelector:sel]) [anInvocation invokeWithTarget:content]; else [super forwardInvocation:anInvocation];}- (BOOL)respondsToSelector:(SEL)aSelector { if ([super respondsToSelector:aSelector]) return YES; if ([self methodForSelector:aSelector] != (IMP)NULL) return YES; if ([content respondsToSelector:aSelector]) return YES; return NO;}- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector { if ([super respondsToSelector:aSelector]) return [super methodSignatureForSelector:aSelector]; return [content methodSignatureForSelector:aSelector];}@endint main(void) { char buf[100]; id s, a, b, c, d, e; @autoreleasepool { scanf("%s", buf); s = [NSString stringWithUTF8String:buf]; a = [[ReversibleString alloc] initWithString:s]; b = [[ReversibleString alloc] initWithString:@"Reverse?"]; printf("%s\n", [a UTF8String]); c = [[a reversedString] stringByAppendingString:b]; printf("%s\n", [c UTF8String]); d = [[ReversibleString alloc] initWithString:c]; e = [b stringByAppendingString:[d reversedString]]; printf("%s\n", [e UTF8String]); } return 0;}
0 0
- ReversibleString(81)
- leetCode练习(81)
- 81
- 81
- (81)蓝图基础用户指南
- 济南最新公交线路一览(81-90)
- 济南最新公交线路一览(81-90)
- 杭州最新公交线路一览(81-90)
- 纪念918(81年过去了)
- IOS开发(81)之构造路径
- NYOJ 81 炮兵阵地 (状态压缩)
- NYOJ 81:炮兵阵地(状压DP)
- 100天土鸡饲养计划(81)
- 挑战程序竞赛系列(81):4.3 LCA(1)
- 非常实用的函数库-81个自定义函数(转)
- NetBeans 时事通讯(刊号 # 81 - Nov 20, 2009)
- GCC-3.4.6源代码学习笔记(81)
- 网络子系统81_inet协议族-SOCK_RAW(二)
- IDAPython类库---idc.py的源码
- Spring-Boot学习笔记-整合Mybatis-Druid-PageHelper
- React依赖注入说明(mapStateToProps/mapDispatchToProps)
- robotFramework学习笔记
- Win10+VS2015环境下编译 OpenCV 3.1和opencv_contrib(网络整理)
- ReversibleString(81)
- html表单标签
- 从零开始
- java 经典队列
- Hive 中的复合数据结构简介以及一些函数的用法说明
- openstack, kvm, qemu-kvm以及libvirt之间的关系
- 每个程序员都绝对必须知道的关于字符集和Unicode的那点儿事
- CSS深入理解流体特性和BFC特性下多栏自适应布局
- velocity语法大全