黑马程序员技术交流社区

标题: 论坛第三次题目(OC)答案 [打印本页]

作者: bao9107    时间: 2014-3-22 10:20
标题: 论坛第三次题目(OC)答案
本帖最后由 bao9107 于 2014-3-26 09:22 编辑

PS:下面答案可能会有些瑕疵,欢迎大家讨论讨论看下还有没有最佳的实现方案~:loveliness:


1>        求字符串“342”和“17”按⼗十进制数值做差后的结果以字符串形式输出
  1. #import <Foundation/Foundation.h>
  2. int main(int argc, const char * argv[])
  3. {
  4.            NSString *str1 = @"342";
  5.             NSString *str2 = @"17";
  6.             //将字符串传成数组
  7.             int num1 = [str1 intValue];
  8.             int num2 = [str2 intValue];
  9.             //生成新字符串
  10.         NSString *newStr = [NSString stringWithFormat:@"%d",(num1 - num2)];   
  11.         return 0;
  12. }
复制代码


2>把字符串”www-it-heima-com”变为字符串”www.itheima.com”
  1. #import <Foundation/Foundation.h>

  2. int main(int argc, const char * argv[])
  3. {
  4.     NSString *str = @"www-it-heima-com";
  5.     NSLog(@"原字符串:%@",str);
  6.     //获取字符串中第一个“-”的范围
  7.     NSRange range = [str rangeOfString:@"-"];
  8.     //当字符串中有"-"时
  9.     while (range.location != NSNotFound) {
  10.         str = [str stringByReplacingCharactersInRange:range withString:@""];//将“-”删除掉
  11.         //获取当前字符串中第一个“-”的范围
  12.         range = [str rangeOfString:@"-"];
  13.     }
  14.     //创建一个新的可变字符串
  15.     NSMutableString *newStr = [NSMutableString stringWithString:str];
  16.     //获取新字符串中"www"和"com"的范围
  17.     //在"www"后和"com"前插入"."
  18.     NSRange wwwRange = [newStr rangeOfString:@"www"];
  19.     NSRange comRange = [newStr rangeOfString:@"com"];
  20.     [newStr insertString:@"." atIndex:wwwRange.length];
  21.     [newStr insertString:@"." atIndex:comRange.location + 1];
  22.     NSLog(@"新字符串:%@",newStr);
  23. }
复制代码


3>创建⼀一个函数,实现复制功能,要求接收的参数为2个字符串作为地址,⼀一个为被复制的文件,⼀一个为复制好了的文件
  1. #import <Foundation/Foundation.h>
  2. /**
  3. *  函数功能:复制文件
  4. *  参数说明:
  5. *  str1:原文件的地址
  6. *  str2:新文件的地址
  7. */
  8. void copyFile(NSString *str1,NSString *str2)
  9. {
  10.         //读取原文件
  11. NSData *data = [[NSData alloc]initWithContentsOfFile:str1];
  12. //将原文件复制到新的文件地址中
  13.     [data writeToFile:str2 atomically:YES];
  14. }

  15. int main(int argc, const char * argv[])
  16. {

  17.     NSString *str1 = @"/Users/koubunhare/Desktop/test.txt";
  18.     NSString *str2 = @"/Users/koubunhare/Desktop/text3/test.txt";
  19.     copyFile(str1,str2);
  20.     return 0;
  21. }
复制代码


4> 将2013年05月05⽇日转换为2013-05-05
  1. #import <Foundation/Foundation.h>

  2. int main(int argc, const char * argv[])
  3. {
  4.     NSString *str = @"2013年05月05日";
  5.     NSLog(@"原字符串:%@",str);
  6.    
  7.     //定义一个dateFormatter
  8.     NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
  9.     //设置Formatter的时间格式
  10.     [formatter setDateFormat:@"yyyy年MM月dd日"];
  11.     //将字符串转成NSDate
  12.     NSDate *date = [formatter dateFromString:str];
  13.     //设置Formatter的时间格式
  14.     [formatter setDateFormat:@"yyyy-MM-dd"];
  15.     //按新的时间格式将date转成新的字符串
  16.     NSString *newStr = [formatter stringFromDate:date];
  17.    
  18.     NSLog(@"新字符串:%@",newStr);
  19.     return 0;
  20. }
复制代码


5> 编写一个函数,实现猜数字游戏,要求:随机产⽣生一个数字,提⽰示⽤用户输⼊入,提⽰示⽤用户输⼊入数 字是否过⼤大或过⼩小,输⼊入正确游戏结束
  1. #import <Foundation/Foundation.h>
  2. /**
  3. *  功能:判断2个数是否相等,当两个数相等返回0,其他情况返回1
  4. *  参数说明:
  5. *  num:游戏开始随机生成的数
  6. *  scanNum:玩具输入的数
  7. */
  8. int judge(int num,int scanNum)
  9. {
  10.     if (scanNum > num) {    //输入比生成的数大了
  11.         NSLog(@"大了");
  12.         return 1;
  13.     } else if (scanNum < num) { //输入比生成的数小了
  14.         NSLog(@"小了");
  15.         return 1;
  16.     } else {        //输入和生成相等
  17.         NSLog(@"游戏结束");
  18.         return 0;
  19.     }
  20. }

  21. int main(int argc, const char * argv[])
  22. {
  23.     int scanNum;
  24.     int flag = 1;
  25.     //随机生成一个0到1000的数
  26.     int num = arc4random_uniform(1000);
  27.     NSLog(@"%d",num);
  28.     //循环判断
  29.     while (flag) {
  30.         NSLog(@"请输入一个数字:");
  31.         scanf("%d",&scanNum);
  32.         flag = judge(num,scanNum);
  33.     }
  34. }
复制代码


6>定义⼀一个block,要求接收⼀一个数组并⽤用迭代器遍历数组,接收的数组内容如下:
“itheima”
10
19.8
nil
struct Date{int year,int month,intday};

  1. #import <Foundation/Foundation.h>
  2. int main(int argc, const char * argv[])
  3. {
  4. //1、先定义一个block,参数为NSArray
  5. void (^myBlock) (NSArray *) = ^(NSArray *array){
  6. for (NSObject *obj in array) {
  7. NSLog(@"%@",obj);
  8. }
  9. };
  10. //2、接着定义并包装结构体
  11. struct Date{int year;int month;int day;};
  12. struct Date date;
  13. NSValue *value = [NSValue valueWithBytes:&date objCType:@encode(struct
  14. Date)];
  15. //3、最后定义一个数组,内容为指定内容
  16. NSArray *array = [NSArray arrayWithObjects:@"itheima",@10,@19.8, [NSNull null],value, nil];
  17. myBlock(array);
  18. }
复制代码


作者: lixiangzhou    时间: 2014-3-22 10:39
赞一个~
作者: a174410    时间: 2014-3-23 23:06
早点发上来就好了~{:3_65:}
作者: 脸皮猴    时间: 2014-3-24 20:26
妹纸很犀利啊,写的很不错。你学OC多久了?我有点好奇···貌似你搞的很快啊·妹纸
作者: Kevinneo    时间: 2014-9-27 08:13
强啊  妹纸怒赞之~
作者: Flying菜鸟    时间: 2014-10-2 12:54
不错 必须赞一个
作者: zwcshy    时间: 2014-12-8 09:09
整理的太好了
作者: lxyz22zp    时间: 2014-12-9 09:45
学习了学习了
作者: smile辉煌    时间: 2014-12-10 21:16
太赞了!!
作者: wx_hg1q2t6v    时间: 2014-12-12 10:17
不太会........
作者: lxyz22zp    时间: 2014-12-12 12:08
老厉害的样子
作者: JRayln    时间: 2015-4-1 10:06
赞一个,很有用
作者: GO_monster    时间: 2015-4-2 17:12
学习了。。
作者: ★W...    时间: 2015-4-3 10:34
我就占个坑
作者: JRayln    时间: 2015-4-4 23:05
赞一个,看看
作者: 帅哥    时间: 2015-4-7 21:09
这是什么?普通题目还是考试题

作者: 小白一号    时间: 2015-4-7 22:15
赞一个,不错的小程序,用到了好多Foundation里的东西,
作者: 小白一号    时间: 2015-4-8 09:05
str = [str stringByReplacingCharactersInRange:range withString:@""];//将“-”删除掉
作者: 小白一号    时间: 2015-4-8 09:06
这一句不是用空格进行替换的吗?为什么不直接用stringByDeletingCharactersInRange 删掉?有这个方法吗
作者: 行我福    时间: 2015-4-12 14:40
版主威武,不错不错学习了
作者: sydie    时间: 2015-4-15 11:46
收藏收藏,学完了再好好看看
作者: dyb_10101    时间: 2015-4-16 17:16
写的很好。
作者: 秦卷卷    时间: 2015-4-18 15:00
顶起。。。。。。。。。。。
作者: 傲弛天下    时间: 2015-4-18 22:07
真棒~来学习学习,小白一枚~
作者: dyb_10101    时间: 2015-4-22 22:40
非常好,非常好。
作者: slq0378    时间: 2015-4-24 11:21
厉害....................
作者: !陈超    时间: 2015-4-26 17:21
这个必须赞  
作者: 素包子    时间: 2015-9-7 12:23
这么溜,在黑马呆多久了?
作者: 半度微凉    时间: 2015-9-7 14:48
感觉很不错的样子哈
作者: 木子青    时间: 2015-9-11 22:19
努力学习呀
作者: zale    时间: 2015-9-14 19:47
谢谢分享
作者: tr2e    时间: 2015-9-15 10:03
mark mark
作者: 小森哥    时间: 2016-6-3 23:55
学习了!!腻害!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2