本帖最后由 bao9107 于 2014-3-26 09:22 编辑
PS:下面答案可能会有些瑕疵,欢迎大家讨论讨论看下还有没有最佳的实现方案~:loveliness:
1> 求字符串“342”和“17”按⼗十进制数值做差后的结果以字符串形式输出
- #import <Foundation/Foundation.h>
- int main(int argc, const char * argv[])
- {
- NSString *str1 = @"342";
- NSString *str2 = @"17";
- //将字符串传成数组
- int num1 = [str1 intValue];
- int num2 = [str2 intValue];
- //生成新字符串
- NSString *newStr = [NSString stringWithFormat:@"%d",(num1 - num2)];
- return 0;
- }
复制代码
2>把字符串”www-it-heima-com”变为字符串”www.itheima.com”
- #import <Foundation/Foundation.h>
- int main(int argc, const char * argv[])
- {
- NSString *str = @"www-it-heima-com";
- NSLog(@"原字符串:%@",str);
- //获取字符串中第一个“-”的范围
- NSRange range = [str rangeOfString:@"-"];
- //当字符串中有"-"时
- while (range.location != NSNotFound) {
- str = [str stringByReplacingCharactersInRange:range withString:@""];//将“-”删除掉
- //获取当前字符串中第一个“-”的范围
- range = [str rangeOfString:@"-"];
- }
- //创建一个新的可变字符串
- NSMutableString *newStr = [NSMutableString stringWithString:str];
- //获取新字符串中"www"和"com"的范围
- //在"www"后和"com"前插入"."
- NSRange wwwRange = [newStr rangeOfString:@"www"];
- NSRange comRange = [newStr rangeOfString:@"com"];
- [newStr insertString:@"." atIndex:wwwRange.length];
- [newStr insertString:@"." atIndex:comRange.location + 1];
- NSLog(@"新字符串:%@",newStr);
- }
复制代码
3>创建⼀一个函数,实现复制功能,要求接收的参数为2个字符串作为地址,⼀一个为被复制的文件,⼀一个为复制好了的文件
- #import <Foundation/Foundation.h>
- /**
- * 函数功能:复制文件
- * 参数说明:
- * str1:原文件的地址
- * str2:新文件的地址
- */
- void copyFile(NSString *str1,NSString *str2)
- {
- //读取原文件
- NSData *data = [[NSData alloc]initWithContentsOfFile:str1];
- //将原文件复制到新的文件地址中
- [data writeToFile:str2 atomically:YES];
- }
- int main(int argc, const char * argv[])
- {
- NSString *str1 = @"/Users/koubunhare/Desktop/test.txt";
- NSString *str2 = @"/Users/koubunhare/Desktop/text3/test.txt";
- copyFile(str1,str2);
- return 0;
- }
复制代码
4> 将2013年05月05⽇日转换为2013-05-05
- #import <Foundation/Foundation.h>
- int main(int argc, const char * argv[])
- {
- NSString *str = @"2013年05月05日";
- NSLog(@"原字符串:%@",str);
-
- //定义一个dateFormatter
- NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
- //设置Formatter的时间格式
- [formatter setDateFormat:@"yyyy年MM月dd日"];
- //将字符串转成NSDate
- NSDate *date = [formatter dateFromString:str];
- //设置Formatter的时间格式
- [formatter setDateFormat:@"yyyy-MM-dd"];
- //按新的时间格式将date转成新的字符串
- NSString *newStr = [formatter stringFromDate:date];
-
- NSLog(@"新字符串:%@",newStr);
- return 0;
- }
复制代码
5> 编写一个函数,实现猜数字游戏,要求:随机产⽣生一个数字,提⽰示⽤用户输⼊入,提⽰示⽤用户输⼊入数 字是否过⼤大或过⼩小,输⼊入正确游戏结束
- #import <Foundation/Foundation.h>
- /**
- * 功能:判断2个数是否相等,当两个数相等返回0,其他情况返回1
- * 参数说明:
- * num:游戏开始随机生成的数
- * scanNum:玩具输入的数
- */
- int judge(int num,int scanNum)
- {
- if (scanNum > num) { //输入比生成的数大了
- NSLog(@"大了");
- return 1;
- } else if (scanNum < num) { //输入比生成的数小了
- NSLog(@"小了");
- return 1;
- } else { //输入和生成相等
- NSLog(@"游戏结束");
- return 0;
- }
- }
- int main(int argc, const char * argv[])
- {
- int scanNum;
- int flag = 1;
- //随机生成一个0到1000的数
- int num = arc4random_uniform(1000);
- NSLog(@"%d",num);
- //循环判断
- while (flag) {
- NSLog(@"请输入一个数字:");
- scanf("%d",&scanNum);
- flag = judge(num,scanNum);
- }
- }
复制代码
6>定义⼀一个block,要求接收⼀一个数组并⽤用迭代器遍历数组,接收的数组内容如下:
“itheima”
10
19.8
nil
struct Date{int year,int month,intday};
- #import <Foundation/Foundation.h>
- int main(int argc, const char * argv[])
- {
- //1、先定义一个block,参数为NSArray
- void (^myBlock) (NSArray *) = ^(NSArray *array){
- for (NSObject *obj in array) {
- NSLog(@"%@",obj);
- }
- };
- //2、接着定义并包装结构体
- struct Date{int year;int month;int day;};
- struct Date date;
- NSValue *value = [NSValue valueWithBytes:&date objCType:@encode(struct
- Date)];
- //3、最后定义一个数组,内容为指定内容
- NSArray *array = [NSArray arrayWithObjects:@"itheima",@10,@19.8, [NSNull null],value, nil];
- myBlock(array);
- }
复制代码
|