OC-数组类-几道练习

3.有两个字符串@"I am a good girl";@"You are a bad boy"; 将这两个字符串单词,交叠,形成系的字符串 @"I You am are a a good bad girl boy"

 1 int main(int argc, const char * argv[]) {
 2     @autoreleasepool {
 3          char str1[100] = {};
 4         char str2[100] = {};
 5         //按格式输入:%[^\n] 解释:表示除了‘\n‘所有字符都被视为字符串的一部分,】‘\n‘:读取到‘\n‘时,为第二个字符串输入
 6         scanf("%[^\n]\n%[^\n]",str1,str2);
 7         NSString *string1 = [NSString stringWithUTF8String:str1];
 8         NSString *string2 = [NSString stringWithUTF8String:str2];
 9
10         NSLog(@"string1 = %@",string1);
11         NSLog(@"string2 = %@",string2);
12
13         NSArray *array1 = [string1 componentsSeparatedByString:@" "];
14         NSArray *array2 = [string2 componentsSeparatedByString:@" "];
15         NSUInteger len1 = [array1 count];
16         NSUInteger len2 = [array2 count];
17         NSArray *array = [[NSArray alloc]init];
18         NSUInteger len = len1<len2?len1:len2;
19         for (int i=0; i<len; i++) {
20             array = [array arrayByAddingObject:[array1 objectAtIndex:i]];
21             array = [array arrayByAddingObject:[array2 objectAtIndex:i]];
22         }
23
24         //获取比较长的字符串的剩余子串
25         NSArray *subArray = [NSArray array];
26         if (len1 > len2) {
27             subArray = [array1 subarrayWithRange:NSMakeRange(len, len1-len)];
28         }else{
29             subArray = [array2 subarrayWithRange:NSMakeRange(len, len2-len)];
30         }
31
32         NSArray *resArray = [array arrayByAddingObjectsFromArray:subArray];
33         NSString *resString = [resArray componentsJoinedByString:@" "];
34         NSLog(@"%@",resString);
35     }
36 }    

2.对称字符串

传入一个字符串,将这个字符串组合成一个新的对称字符串返回

例如:

传入:@"I love you Mery"

返回:@"I love you Mery Mery you love I"

 1 int main(int argc, const char * argv[]) {
 2     @autoreleasepool {
 3
 4         //以字符串整体进行分割
 5         NSString *src = @"I love you Mery";
 6         NSArray *array = [src componentsSeparatedByString:@" "];
 7         NSArray *retArray = [[NSArray alloc] initWithArray:array];
 8         //1.method:第一种for循环遍历
 9         /*
10         NSUInteger len = [array count];
11         for (NSInteger i=len-1; i>=0; i--) {
12             retArray = [retArray arrayByAddingObject:[array objectAtIndex:i]];
13         }
14         NSString *resString = [retArray componentsJoinedByString:@" "];
15         NSLog(@"%@",resString);
16          */
17         //2.第二种枚举器遍历
18         /*
19         NSEnumerator *reverseEnumerator = [[NSEnumerator alloc] init];
20         reverseEnumerator = [array reverseObjectEnumerator];
21         id obj = nil;
22         while (obj = [reverseEnumerator nextObject]) {
23             retArray = [retArray arrayByAddingObject:obj];
24         }
25         NSString *resString = [retArray componentsJoinedByString:@" "];
26         NSLog(@"%@",resString);
27          */
28     }
29 }
时间: 2024-10-13 08:05:11

OC-数组类-几道练习的相关文章

OC中数组类NSArray的详解(二)

数组类的便利 1.for循环(大家都会的...) 2.NSEmunerator 3.for in 首先重点说下 第二种NSEmunerator枚举器,系统声明是 1 @interface NSEnumerator : NSObject <NSFastEnumeration> 2 3 - (id)nextObject; 4 5 @end 6 7 @interface NSEnumerator (NSExtendedEnumerator) 8 9 @property (readonly, copy

设计数组类扩展数组的功能

建立专门的数组类处理有关数组的操作 数组是几乎所支持的组织数据的方法.C和C++对数组类型提供了内置支持,使我们利用数组实现软件中需要的各种实用的功能.但是,这种支持仅限于用来读写单个元素的机制.C++不支持数组的抽象abstraction,也不支持对整个数组的操作.例如:把一个数组赋值给另外一个数组,对两个数组进行相等比较或者想知道数组的大小size,等等.对C++而言,数组是从C语言中继承来的,它反映了数据与对其进行操作的算法的分离,有浓厚的过程化程序设计的特征.数组并不是C++语言的一等公

4 C++基础4 类 const函数 转全局函数 返回*this 数组类。友元 函数 类 操作符重载

1,请问类中函数 const修饰的谁? [email protected]:~/c++$ cat main.cpp  #include <iostream> #include <stdlib.h> using namespace std; class A { public: //const的三种写法 //const void fun(int a,int b) //void const fun(int a,int b) //void fun(int a,int b) const vo

Arrays数组类使用介绍

Arrays:数组类,是包java.util下面的一个类,Collection接口也在这个包下面. 主要的方法: Arrays.asList(数组对象)  //此静态方法用于将Array转化为List类型对象.常常用于List类型对象的初始化中. Arrays.sort(array):升序排序: Arrays.banarySearch(array,2):查找2这个元素所在数组中的位置,用二分查找: Arrays.copyOf(float[] original, int newLength):复制

OC 01 类和对象

一.  定义OC的类和创建OC的对象 接下来就在OC中模拟现实生活中的情况,创建一辆车出来.首先要有一个车子类,然后再利用车子类创建车子对象 要描述OC中的类稍微麻烦一点,分2大步骤:类的声明.类的实现(定义).跟函数类似,函数有分声明和定义 1.     类的声明 1)       代码编写 定义一个Car类,拥有2个属性:轮子数.时速,1个行为:跑 类名\属性的命名规则:标示符的规则 类名的命名规范:有意义.驼峰标识.首字母大写 #import <Foundation/Foundation.

OC 导入类 #import和@class 区别复习

objective-c中#import和@class的区别 在Objective-C中,可以使用#import和@class来引用别的类型, 但是你知道两者有什么区别吗? @class叫做forward-class,  你经常会在头文件的定义中看到通过@class的引用, 原因就是当你只用@class来引入一个类时, 编译器知道有这么一个类,也就是说它能识别Engine *engine; 而在implementation文件中,如果你想要访问engine.price, 编译器就会出错, 即使你用

C++ 运算符重载四(自定义数组类)

//自定义数组类 #include<iostream> using namespace std; //分析:能获取数组长度,添加元素,删除元素,修改元素 //要求重载[],=,==,!=运算符 class MyArray { private: int mLength; int* mSpace; public: MyArray(int length){ cout << "有参构造函数被调用了1" << endl; mLength = length; m

视频iOS之02第一个OC的类

OC是一门面向对象的语言,因此它也有类.对象.静态\动态方法.成员变量的概念.这讲就来创建第一个OC的类. 第一个类的源码: 1 /* 2 人 3 类名:Person 4 属性(成员变量\实例变量):体重.年龄 5 行为(方法):走路.吃 6 */ 7 8 #import <Foundation/Foundation.h> 9 10 //1.类的声明 11 @interface Person : NSObject 12 { 13 @public 14 int age; 15 double we

实验11:Problem D: 分数类的模板数组类

在默认构造函数里面,分母的默认值不能为0!! Home Web Board ProblemSet Standing Status Statistics Problem D: 分数类的模板数组类 Problem D: 分数类的模板数组类 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 509  Solved: 350[Submit][Status][Web Board] Description 封装一个模板数组类Array,支持一下操作: 1. 构造函

一个简单的数组类操作

要求定义一个数组类,动态分配数组大小,并实现反转与排序操作. 代码如下: class Array { private int a[] = null; private int foot=0; public Array(int len) { if (len > 0) this.a = new int[len]; else this.a = new int[1]; } public boolean add(int i){ if(this.foot<this.a.length){ this.a[foo