A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bao9107 中级黑马   /  2014-3-22 10:20  /  5388 人查看  /  32 人回复  /   10 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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. }
复制代码

评分

参与人数 1技术分 +3 收起 理由
jing迪 + 3 很给力!

查看全部评分

32 个回复

倒序浏览
赞一个~
回复 使用道具 举报
早点发上来就好了~{:3_65:}
回复 使用道具 举报
妹纸很犀利啊,写的很不错。你学OC多久了?我有点好奇···貌似你搞的很快啊·妹纸
回复 使用道具 举报
强啊  妹纸怒赞之~
回复 使用道具 举报
不错 必须赞一个
回复 使用道具 举报
zwcshy 中级黑马 2014-12-8 09:09:27
7#
整理的太好了
回复 使用道具 举报
学习了学习了
回复 使用道具 举报
太赞了!!
回复 使用道具 举报
不太会........
回复 使用道具 举报
老厉害的样子
回复 使用道具 举报
赞一个,很有用
回复 使用道具 举报
学习了。。
回复 使用道具 举报
我就占个坑
回复 使用道具 举报
赞一个,看看
回复 使用道具 举报
这是什么?普通题目还是考试题
回复 使用道具 举报
赞一个,不错的小程序,用到了好多Foundation里的东西,
回复 使用道具 举报
str = [str stringByReplacingCharactersInRange:range withString:@""];//将“-”删除掉
回复 使用道具 举报
这一句不是用空格进行替换的吗?为什么不直接用stringByDeletingCharactersInRange 删掉?有这个方法吗
回复 使用道具 举报
版主威武,不错不错学习了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马