黑马程序员技术交流社区
标题:
论坛第三次题目(OC)答案
[打印本页]
作者:
bao9107
时间:
2014-3-22 10:20
标题:
论坛第三次题目(OC)答案
本帖最后由 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);
}
复制代码
作者:
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