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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bao9107 中级黑马   /  2014-3-22 10:20  /  4899 人查看  /  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 个回复

正序浏览
学习了!!腻害!!
回复 使用道具 举报
tr2e 中级黑马 2015-9-15 10:03:39
32#
mark mark
回复 使用道具 举报
zale 中级黑马 2015-9-14 19:47:32
31#
谢谢分享
回复 使用道具 举报
努力学习呀
回复 使用道具 举报
感觉很不错的样子哈
回复 使用道具 举报
这么溜,在黑马呆多久了?
回复 使用道具 举报
这个必须赞  
回复 使用道具 举报
厉害....................
回复 使用道具 举报
非常好,非常好。
回复 使用道具 举报
真棒~来学习学习,小白一枚~
回复 使用道具 举报
顶起。。。。。。。。。。。
回复 使用道具 举报
写的很好。
回复 使用道具 举报
sydie 中级黑马 2015-4-15 11:46:27
21#
收藏收藏,学完了再好好看看
回复 使用道具 举报
版主威武,不错不错学习了
回复 使用道具 举报
这一句不是用空格进行替换的吗?为什么不直接用stringByDeletingCharactersInRange 删掉?有这个方法吗
回复 使用道具 举报
str = [str stringByReplacingCharactersInRange:range withString:@""];//将“-”删除掉
回复 使用道具 举报
赞一个,不错的小程序,用到了好多Foundation里的东西,
回复 使用道具 举报
这是什么?普通题目还是考试题
回复 使用道具 举报
赞一个,看看
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马