1 00:00:00,000 --> 00:00:05,410 2 00:00:05,410 --> 00:00:08,770 >> ANDI彭:我们几乎 通过所有pset时。 3 00:00:08,770 --> 00:00:12,080 事实上,我们正在通过广大 最困难的pset。 4 00:00:12,080 --> 00:00:14,350 所以我们实际上只是 要那种清风 5 00:00:14,350 --> 00:00:16,050 在接下来的几个星期。 6 00:00:16,050 --> 00:00:19,520 >> 我们将开始谈论我们的 最终的项目,事件即将到来 7 00:00:19,520 --> 00:00:21,320 在接下来的几个星期。 8 00:00:21,320 --> 00:00:23,825 而生命将变得轻而易举。 9 00:00:23,825 --> 00:00:26,510 10 00:00:26,510 --> 00:00:27,680 所以今天不会太大。 11 00:00:27,680 --> 00:00:30,280 >> 我们希望,实际上清风 通过今天的议程, 12 00:00:30,280 --> 00:00:33,400 然后离开这里 一些空余时间。 13 00:00:33,400 --> 00:00:36,210 另外,我要道歉 今日缺乏糖果。 14 00:00:36,210 --> 00:00:37,030 我不知道为什么。 15 00:00:37,030 --> 00:00:40,520 但在周通向 万圣节,我会忘记糖果。 16 00:00:40,520 --> 00:00:43,290 >> 所以,我其实只是一个巨大的 失望对现在的你。 17 00:00:43,290 --> 00:00:47,050 因为我真的记糖果 对于每一个类,但万圣节。 18 00:00:47,050 --> 00:00:49,345 但在下周,我将带来 一倍糖果的量 19 00:00:49,345 --> 00:00:50,720 弥补的是,所有的你。 20 00:00:50,720 --> 00:00:53,260 这将是巨大的。 21 00:00:53,260 --> 00:00:56,690 >> 所以,我有一对夫妇的公告 对于一些调度。 22 00:00:56,690 --> 00:00:59,520 我有一些时间安排问题。 23 00:00:59,520 --> 00:01:02,150 然后,我们将进入到 说说什么叫做文件模式。 24 00:01:02,150 --> 00:01:05,980 我们要谈 快速TCP / IP HTTP。 25 00:01:05,980 --> 00:01:09,770 >> 然后,我们将编写我们 自己的网站上使用HTML和CSS。 26 00:01:09,770 --> 00:01:13,030 然后我会真正离开也许 20分钟就好谈pset6。 27 00:01:13,030 --> 00:01:16,550 由于pset6实际上是一个很大的 东西,我们已经看到过, 28 00:01:16,550 --> 00:01:19,090 但我想刷新 其中的一些概念 29 00:01:19,090 --> 00:01:22,140 并教了新的功能。 30 00:01:22,140 --> 00:01:23,110 >> 凉。 31 00:01:23,110 --> 00:01:25,440 所以首先, 欢迎破发。 32 00:01:25,440 --> 00:01:27,410 我希望你休息是愉快的。 33 00:01:27,410 --> 00:01:29,695 请问你做的休息时间吗? 34 00:01:29,695 --> 00:01:30,820 听众:去纽约。 35 00:01:30,820 --> 00:01:32,030 ANDI彭:你去纽约? 36 00:01:32,030 --> 00:01:33,738 我认为,一半的学校 去纽约。 37 00:01:33,738 --> 00:01:34,740 没关系。 38 00:01:34,740 --> 00:01:38,250 我花了我大部分的突破 久坐不动的在床上Netflixing。 39 00:01:38,250 --> 00:01:39,760 这是一个好时机。 40 00:01:39,760 --> 00:01:43,450 >> 但我们现在回来了,回到了 会议上,背的东西摆动。 41 00:01:43,450 --> 00:01:47,900 我们中午,由于这周五PSET。 42 00:01:47,900 --> 00:01:50,240 >> 我想你已经已经 拿起你的测验,是吗? 43 00:01:50,240 --> 00:01:52,140 所以谁比谁有 没有他们的测验, 44 00:01:52,140 --> 00:01:55,416 请进来,让你的测验 从我在段的末端。 45 00:01:55,416 --> 00:01:56,540 或者跟踪我在校园里。 46 00:01:56,540 --> 00:01:59,310 我会用我的地方。 47 00:01:59,310 --> 00:02:02,120 >> 我们的最后一个项目的前期建议也。 48 00:02:02,120 --> 00:02:06,380 因此,对于我们这些从来没有花谁 这个课前,CS50的顶峰 49 00:02:06,380 --> 00:02:11,150 在这个非常高潮 宏伟工程的学生提出。 50 00:02:11,150 --> 00:02:14,300 和预提案, 只是一个总体思路 51 00:02:14,300 --> 00:02:18,500 对什么人可能想为自己的 项目,这个想法是因为周一, 52 00:02:18,500 --> 00:02:20,780 下周一中午。 53 00:02:20,780 --> 00:02:23,800 >> 那么好看多了,大卫·我想会 谈论这个讲座 54 00:02:23,800 --> 00:02:25,390 如果他没有。 55 00:02:25,390 --> 00:02:28,710 而有一个坚实的页面 在我们的网站解释 56 00:02:28,710 --> 00:02:31,610 该项目的所有要求。 57 00:02:31,610 --> 00:02:34,082 但本质上,挑 你已经任何主题 58 00:02:34,082 --> 00:02:35,915 一直关注 整个在这里你的时间 59 00:02:35,915 --> 00:02:41,760 在CS,无论是游戏还是 设计或视频或任何东西。 60 00:02:41,760 --> 00:02:44,920 >> 你可以真的有种 现在应用的一些经验 61 00:02:44,920 --> 00:02:52,470 我们在这里学到的CS50--喜, welcome--到几乎举办 62 00:02:52,470 --> 00:02:56,320 您所选择的最终项目。 63 00:02:56,320 --> 00:02:59,570 所有这一切是由于周一是 通过电子邮件只是一个简短的Blurb的 64 00:02:59,570 --> 00:03:02,010 对我来说,一个快速的句子, 像,哎,安迪, 65 00:03:02,010 --> 00:03:06,490 我对设计很感兴趣 一个游戏,这是否为iOS。 66 00:03:06,490 --> 00:03:07,420 凉。 67 00:03:07,420 --> 00:03:10,767 只要让我看看你的简短的初始 想法最终的项目。 68 00:03:10,767 --> 00:03:13,850 我们将讨论通过与否 这其实是一个好主意与否, 69 00:03:13,850 --> 00:03:15,590 如果它是一个可行的主意或没有。 70 00:03:15,590 --> 00:03:20,760 但就在预建议 是由于下周一。 71 00:03:20,760 --> 00:03:24,190 pset6,我们可爱的web--这是错误的。 72 00:03:24,190 --> 00:03:25,060 Pset7? 73 00:03:25,060 --> 00:03:25,560 pset6? 74 00:03:25,560 --> 00:03:26,680 这是pset6,对不对? 75 00:03:26,680 --> 00:03:32,690 >> pset6,我们的Web服务器,是因为 周五中午与已故的一天。 76 00:03:32,690 --> 00:03:37,660 办公时间为星期一正常地恢复 至周四8:00至本周11:00。 77 00:03:37,660 --> 00:03:39,710 我想共享的 接下来的三个晚上。 78 00:03:39,710 --> 00:03:40,310 凉。 79 00:03:40,310 --> 00:03:44,260 之前我们已经为物质,没有任何人 有任何疑问,笑话,故事? 80 00:03:44,260 --> 00:03:46,662 你做了什么秋季休息? 81 00:03:46,662 --> 00:03:48,640 >> 听众:我做什么? 82 00:03:48,640 --> 00:03:52,834 >> ANDI彭:已 这是很久以前其实。 83 00:03:52,834 --> 00:03:54,000 Christabel去纽约。 84 00:03:54,000 --> 00:03:55,614 我住在这里,并Netflixed。 85 00:03:55,614 --> 00:03:56,864 听众:哦,是的,我在这里。 86 00:03:56,864 --> 00:03:57,614 ANDI彭:哦,好。 87 00:03:57,614 --> 00:03:59,792 听众:我不记得 具体是什么。 88 00:03:59,792 --> 00:04:00,710 ANDI彭:这是确定的。 89 00:04:00,710 --> 00:04:01,960 听众:Netflixing可能。 90 00:04:01,960 --> 00:04:02,990 ANDI彭:Netflixing。 91 00:04:02,990 --> 00:04:04,710 是的,这是一个好时机。 92 00:04:04,710 --> 00:04:05,780 好。 93 00:04:05,780 --> 00:04:06,340 好吧。 94 00:04:06,340 --> 00:04:08,877 之前有任何疑问 我们跳进材料? 95 00:04:08,877 --> 00:04:11,210 此外,我们要尝试 今天一节的速度通过​​, 96 00:04:11,210 --> 00:04:12,504 没有过多的涉及。 97 00:04:12,504 --> 00:04:14,420 并希望,我们会得到 在这里有点早。 98 00:04:14,420 --> 00:04:15,580 对不起,没有糖果,也是。 99 00:04:15,580 --> 00:04:20,310 我很失望, 特别是在万圣节。 100 00:04:20,310 --> 00:04:21,110 >> 好吧。 101 00:04:21,110 --> 00:04:21,810 凉。 102 00:04:21,810 --> 00:04:28,370 所以,我们要开始谈论 一个命令行参数调用文件模式。 103 00:04:28,370 --> 00:04:32,850 文件模式,所有这仅仅是一个Unix系统 调用命令行进行 104 00:04:32,850 --> 00:04:34,700 更改文件权限。 105 00:04:34,700 --> 00:04:37,790 因此,例如,我们已经 所有遇到页 106 00:04:37,790 --> 00:04:40,550 这样很可能在某个时候 我们的生活中是一个互联网跨度 107 00:04:40,550 --> 00:04:45,110 用户,我们的网站服务器, 给了我们故宫的错误。 108 00:04:45,110 --> 00:04:49,086 您没有权限访问, yadda,yadda,yadda,在此服务器上。 109 00:04:49,086 --> 00:04:50,960 所有这一切的真正含义 是权限 110 00:04:50,960 --> 00:04:53,920 该贴到任何 页面您试图访问 111 00:04:53,920 --> 00:04:55,840 不向你敞开。 112 00:04:55,840 --> 00:04:57,870 因此,相当多,文件模式 是在其中的方式 113 00:04:57,870 --> 00:05:02,140 我们可以修改这些系统权限 给每个人,用户,组, 114 00:05:02,140 --> 00:05:04,975 或世界,或任何 这些接入组合 115 00:05:04,975 --> 00:05:07,900 对某些文件, 目录,任何事情真的, 116 00:05:07,900 --> 00:05:11,720 在任何一种制度 操作系统。 117 00:05:11,720 --> 00:05:14,039 因此,如果任何人有 如果你觉得电脑 118 00:05:14,039 --> 00:05:17,080 像今天一起跟随我, 完全随意只需键入的东西 119 00:05:17,080 --> 00:05:17,580 研究。 120 00:05:17,580 --> 00:05:19,790 如果没有,你可以只挂出。 121 00:05:19,790 --> 00:05:23,170 所以,我要真正拉动 我的终端现在。 122 00:05:23,170 --> 00:05:29,810 123 00:05:29,810 --> 00:05:32,310 >> 因此,要运行的命令 文件模式,或者至少只 124 00:05:32,310 --> 00:05:37,840 列出的权限您 文件目录,只是LS-L。 125 00:05:37,840 --> 00:05:42,270 正如你所看到的,一堆 东西弹出其中大部分 126 00:05:42,270 --> 00:05:45,390 重要的是我们 左手侧此处。 127 00:05:45,390 --> 00:05:48,710 你们看到了一堆RS,WS,1 /的。 128 00:05:48,710 --> 00:05:49,210 是啊。 129 00:05:49,210 --> 00:05:51,400 >> 这些基本上都是刚 所有的文件权限 130 00:05:51,400 --> 00:05:55,960 解释什么特定的目录 和你的系统中的文件有。 131 00:05:55,960 --> 00:05:58,150 因此,让我们回去 这里的功率点。 132 00:05:58,150 --> 00:06:02,450 133 00:06:02,450 --> 00:06:06,500 因此,除了文件名 因为你们可以在右侧看到, 134 00:06:06,500 --> 00:06:10,312 我们期待看到本质 只是在左边的列中。 135 00:06:10,312 --> 00:06:12,020 所以除了刚 文件名,我们 136 00:06:12,020 --> 00:06:16,240 可以看到文件的权限,他们 所有者组,组名,日期 137 00:06:16,240 --> 00:06:18,460 该文件的最后 改性,等等。 138 00:06:18,460 --> 00:06:20,640 你可以看到很多使用chmod东西。 139 00:06:20,640 --> 00:06:26,037 让我们读文件模式的方式是, 我们几乎忽略第一个字母 140 00:06:26,037 --> 00:06:27,370 在阅读权限方面。 141 00:06:27,370 --> 00:06:31,460 >> 第一个字母只是告诉我们什么 系统的类型,我们在访问。 142 00:06:31,460 --> 00:06:34,240 研发,在这种情况下,是一 文件夹或目录。 143 00:06:34,240 --> 00:06:38,430 因此,我们知道,目前我的工作区 第七节是一个目录。 144 00:06:38,430 --> 00:06:41,530 然后你看到三个 黑社会,本质上只是 145 00:06:41,530 --> 00:06:43,490 三组三个字符。 146 00:06:43,490 --> 00:06:45,680 你能想到的每一个位。 147 00:06:45,680 --> 00:06:49,260 >> 所以,你只是有三套 三个比特,九个位总共。 148 00:06:49,260 --> 00:06:51,420 你对待他们三个一组。 149 00:06:51,420 --> 00:06:56,230 所以三第一组是 总是你的用户权限。 150 00:06:56,230 --> 00:07:00,557 >> 你的第二个三组 总是你的组权限。 151 00:07:00,557 --> 00:07:02,765 而你的第三个三集 总是喜欢这个世界, 152 00:07:02,765 --> 00:07:04,380 在无处不在的权限。 153 00:07:04,380 --> 00:07:06,320 所以我想简单 要问的问题是什么 154 00:07:06,320 --> 00:07:08,051 用户和组之间的差异。 155 00:07:08,051 --> 00:07:09,800 主要的区别 用户和组之间 156 00:07:09,800 --> 00:07:13,180 是用户就是你本人 访问无论它是现在。 157 00:07:13,180 --> 00:07:18,070 一组可以,如果你有多个 一台计算机上的用户,例如。 158 00:07:18,070 --> 00:07:20,280 所有的人都可以被视为一组。 159 00:07:20,280 --> 00:07:23,220 >> 然后天下 只是世界上,每一个人。 160 00:07:23,220 --> 00:07:31,010 因此,我们可以在后面看到我们如何 修改这些成不同的权限。 161 00:07:31,010 --> 00:07:33,080 因此相当多,我们 将仍然集中 162 00:07:33,080 --> 00:07:38,450 在左侧,在那里部分 对于目录CS50我们看到drwx, 163 00:07:38,450 --> 00:07:40,970 其中,第r只是意味着它的可读性。 164 00:07:40,970 --> 00:07:42,620 >> 在W只是意味着它是可写的。 165 00:07:42,620 --> 00:07:45,470 然后在X刚 意味着它的可执行文件。 166 00:07:45,470 --> 00:07:47,220 你会觉得​​它种 对没有任何意义。 167 00:07:47,220 --> 00:07:47,993 应该是E。 168 00:07:47,993 --> 00:07:50,150 但实际上x样的 工作好一点, 169 00:07:50,150 --> 00:07:51,690 因为你可以更好地记住它。 170 00:07:51,690 --> 00:07:56,406 >> 因此,三种类型的东西你 能做到的,你可以读文件, 171 00:07:56,406 --> 00:07:59,280 你可以有权限写 文件,或者你可以有权限 172 00:07:59,280 --> 00:08:00,780 要执行的文件。 173 00:08:00,780 --> 00:08:04,580 因此,我们实际上的方式, 代表了那些位 174 00:08:04,580 --> 00:08:06,940 是数字4,2和1。 175 00:08:06,940 --> 00:08:12,870 因此可以将任何可读是 通过4-数来表示。 176 00:08:12,870 --> 00:08:15,150 >> 凡是是可写的 由2表示。 177 00:08:15,150 --> 00:08:18,880 和任何的可执行 如由1表示。 178 00:08:18,880 --> 00:08:22,860 所以在这个意义上,我们也可以 代表这些numbers-- 179 00:08:22,860 --> 00:08:25,281 您好,欢迎,以不同的方式。 180 00:08:25,281 --> 00:08:25,780 抱歉。 181 00:08:25,780 --> 00:08:28,510 每个人都在,我要去 道歉代表大家 182 00:08:28,510 --> 00:08:29,468 现在进入教室。 183 00:08:29,468 --> 00:08:30,810 我忘了今天的糖果。 184 00:08:30,810 --> 00:08:33,640 对不起,我是个失败 本周万圣节。 185 00:08:33,640 --> 00:08:37,070 我会带双量 糖果下次来弥补它。 186 00:08:37,070 --> 00:08:42,360 但不管怎么说,对不起 关于球员,对不起。 187 00:08:42,360 --> 00:08:46,640 >> 于是方式,我们实际上可以输入 我们命令的参数是我们 188 00:08:46,640 --> 00:08:51,760 可以做CHMOD组斜线权限, 其中,该集团只是什么 189 00:08:51,760 --> 00:08:54,130 组我们正在试图改变。 190 00:08:54,130 --> 00:08:56,600 而权限 无论我们想给它添加。 191 00:08:56,600 --> 00:08:58,860 因此,例如,该 再加上增加了权限, 192 00:08:58,860 --> 00:09:01,590 和减法带走权限。 193 00:09:01,590 --> 00:09:07,060 >> 和组的类型,我们有我们的一个 对于所有,U为用户,克群, 194 00:09:07,060 --> 00:09:09,050 或o他人。 195 00:09:09,050 --> 00:09:10,300 这是一个有点抽象,现在。 196 00:09:10,300 --> 00:09:13,550 但是,我们就去了几个例子 只是为了证明这一点真正的快。 197 00:09:13,550 --> 00:09:16,960 大家好这个 幻灯片,这样我就可以继续前进? 198 00:09:16,960 --> 00:09:18,280 凉。 199 00:09:18,280 --> 00:09:21,290 >> 因此,例如,RWX。 200 00:09:21,290 --> 00:09:26,720 在我们讨论究竟意味着什么, 首先是什么RWX是什么意思? 201 00:09:26,720 --> 00:09:31,450 如果你看到这一定 文件具有RWX权限, 202 00:09:31,450 --> 00:09:34,270 这是什么意思 人可能是能够做到? 203 00:09:34,270 --> 00:09:35,740 >> 听众:读,写和执行。 204 00:09:35,740 --> 00:09:36,420 >> ANDI彭:是的,没错。 205 00:09:36,420 --> 00:09:37,840 你可以读写和执行。 206 00:09:37,840 --> 00:09:40,790 因为所有这三个的 字符都存在。 207 00:09:40,790 --> 00:09:44,370 因此,如果我们继续聊 有关这方面的比特而言, 208 00:09:44,370 --> 00:09:48,490 的RWX也可以被表示为700。 209 00:09:48,490 --> 00:09:53,370 因为你可以在任何看到 之类的文件目录的权限, 210 00:09:53,370 --> 00:09:54,320 有三个黑社会。 211 00:09:54,320 --> 00:09:58,060 >> 在这种情况下,只有第一 黑社会有什么存在。 212 00:09:58,060 --> 00:10:04,050 所以在这种情况下,r是4, 的w是2,x是1。 213 00:10:04,050 --> 00:10:05,860 如果加在一起的,这是7。 214 00:10:05,860 --> 00:10:08,730 >> 所以,如果转换 它为二进制,它是700。 215 00:10:08,730 --> 00:10:10,310 因为图7是第一个三合一。 216 00:10:10,310 --> 00:10:12,760 0,没有什么礼物 在第二个黑社会。 217 00:10:12,760 --> 00:10:15,850 然后还有什么存在的 第三个黑社会,所以这是另外一个0。 218 00:10:15,850 --> 00:10:22,520 >> 因此,在同样的意义,一帮黑社会 只是在比特可以表示,只是 219 00:10:22,520 --> 00:10:23,600 以二进制为好。 220 00:10:23,600 --> 00:10:29,920 因此,700表示完全一样的东西 RWX ------在权限方面。 221 00:10:29,920 --> 00:10:32,590 每个人都清楚这一点? 222 00:10:32,590 --> 00:10:33,090 凉。 223 00:10:33,090 --> 00:10:40,290 所以CHMOD 111将使 其中该文件的权限? 224 00:10:40,290 --> 00:10:42,600 给你们一对夫妇 秒到这种转换。 225 00:10:42,600 --> 00:10:51,140 226 00:10:51,140 --> 00:10:53,250 还记得,第一次 三元组是用于用户。 227 00:10:53,250 --> 00:10:56,320 第二三元组的组。 228 00:10:56,320 --> 00:10:59,450 而第三个黑社会是适合每一个人。 229 00:10:59,450 --> 00:11:03,680 >> 所以CHMOD 111将给予其 权限,并为之类型? 230 00:11:03,680 --> 00:11:06,520 231 00:11:06,520 --> 00:11:09,020 就拿几秒钟, 想想回来。 232 00:11:09,020 --> 00:11:19,790 233 00:11:19,790 --> 00:11:20,910 是啊。 234 00:11:20,910 --> 00:11:22,920 >> 听众:所以每个人都可以执行它。 235 00:11:22,920 --> 00:11:23,920 ANDI彭:是的,没错。 236 00:11:23,920 --> 00:11:25,544 听众:但是,没有人可以读取或写入。 237 00:11:25,544 --> 00:11:27,910 ANDI彭:并随时 为给大家讲解 238 00:11:27,910 --> 00:11:29,860 你怎么来了这个结论。 239 00:11:29,860 --> 00:11:34,290 >> 听众:那么,对于用户来说, 组,和世界,这是所有1, 240 00:11:34,290 --> 00:11:35,700 这是可执行的代码。 241 00:11:35,700 --> 00:11:37,070 >> ANDI彭:是的,没错。 242 00:11:37,070 --> 00:11:42,320 所以图1,在这种情况下,我们都知道是 即是这样的可执行代码。 243 00:11:42,320 --> 00:11:45,280 因为阅读是4。 244 00:11:45,280 --> 00:11:45,990 写作是2。 245 00:11:45,990 --> 00:11:47,230 而可执行文件是1。 246 00:11:47,230 --> 00:11:51,580 那么,这三个黑社会是1,那 意味着走向世界,给用户, 247 00:11:51,580 --> 00:11:54,680 和基团,它们 都是可执行文件。 248 00:11:54,680 --> 00:11:56,170 >> 每个人都好有吗? 249 00:11:56,170 --> 00:11:56,940 好。 250 00:11:56,940 --> 00:11:59,180 这样一来,第二路 我们实际上可以 251 00:11:59,180 --> 00:12:01,220 写这也是你 可能只是做搭配chmod 252 00:12:01,220 --> 00:12:05,050 加的X.一个是指所有或每个人。 253 00:12:05,050 --> 00:12:07,060 加号是指给予许可。 254 00:12:07,060 --> 00:12:09,112 然后将x表示可执行文件。 255 00:12:09,112 --> 00:12:11,070 因此,有两个命令 实际上是相同的。 256 00:12:11,070 --> 00:12:12,903 所以,如果你想运行 这在你的终端, 257 00:12:12,903 --> 00:12:15,830 你做搭配chmod 111名 您的目录或文件。 258 00:12:15,830 --> 00:12:18,520 或者,你可以做搭配chmod加X, 目录文件的名称。 259 00:12:18,520 --> 00:12:22,150 同样的事情,只是一个简单的方法, 或许,对于一些代表或改变 260 00:12:22,150 --> 00:12:24,280 文件权限。 261 00:12:24,280 --> 00:12:28,806 >> 用chmod每个人都OK 之前,我们继续前进? 262 00:12:28,806 --> 00:12:31,700 凉。 263 00:12:31,700 --> 00:12:35,336 所以,现在我们要前往成 很抽象的概念,几张幻灯片 264 00:12:35,336 --> 00:12:37,210 我是非常 要微风通过。 265 00:12:37,210 --> 00:12:39,530 而且它的,如果你完全确定 不明白了一切。 266 00:12:39,530 --> 00:12:42,330 >> 即使是现在,我还是真的不 完全明白了一切。 267 00:12:42,330 --> 00:12:44,640 但更得到了 顶级的理解 268 00:12:44,640 --> 00:12:47,280 如何对这些事情的工作。 269 00:12:47,280 --> 00:12:50,490 因此,我们要谈 赶紧有关TCP / IP, 270 00:12:50,490 --> 00:12:54,880 这仅仅是传输控制 协议削减互联网协议。 271 00:12:54,880 --> 00:12:57,135 >> 从讲座回忆, 大卫,他才教你 272 00:12:57,135 --> 00:13:00,700 在那里,他想通过这个例子 在一个信封的注意事项 273 00:13:00,700 --> 00:13:02,790 高达喜欢报告厅的顶部? 274 00:13:02,790 --> 00:13:06,990 所以在法学院礼堂 大卫基本上证明 275 00:13:06,990 --> 00:13:10,370 如何在TCP / IP协议的工作原理 某种意义上说,所有这 276 00:13:10,370 --> 00:13:14,300 是是确保数据的方式 已交付跨越服务器 277 00:13:14,300 --> 00:13:15,870 或在互联网上。 278 00:13:15,870 --> 00:13:22,270 因此,在包络线的例子 和消息,在端用户 279 00:13:22,270 --> 00:13:26,410 看得出来,哦,我需要 收到四包的信息。 280 00:13:26,410 --> 00:13:28,096 >> 但事实上,我只是收到了三份。 281 00:13:28,096 --> 00:13:29,470 这意味着我必须失去之一。 282 00:13:29,470 --> 00:13:30,760 和一个未送达。 283 00:13:30,760 --> 00:13:33,990 等的TCP / IP在网络上, 通过您的计算机和服务器, 284 00:13:33,990 --> 00:13:35,500 做同样的事情。 285 00:13:35,500 --> 00:13:38,900 它所做的就是指定一个 框架,其中丢失的数据 286 00:13:38,900 --> 00:13:41,100 数据包可以重新发送和接收。 287 00:13:41,100 --> 00:13:44,760 >> 就像在互联网上,当你试图 在线访问文件或发送的文件 288 00:13:44,760 --> 00:13:48,210 给您的朋友或看网页 浏览器,千千万 289 00:13:48,210 --> 00:13:50,440 的数十亿 的字节的信息 290 00:13:50,440 --> 00:13:52,840 每毫秒传送。 291 00:13:52,840 --> 00:13:54,560 而且它是真的,真的很令人困惑。 292 00:13:54,560 --> 00:13:57,110 它真的很难 真正知道什么是被发送 293 00:13:57,110 --> 00:13:58,270 而什么不被发送。 294 00:13:58,270 --> 00:14:02,210 >> 所以TCP / IP只是规定 一个有凝聚力的框架 295 00:14:02,210 --> 00:14:04,115 在您的网站 浏览器和服务器 296 00:14:04,115 --> 00:14:05,990 一种可以沟通 彼此,只是 297 00:14:05,990 --> 00:14:08,550 确保数据包 一切都在这里并没有什么失落的 298 00:14:08,550 --> 00:14:12,700 和所有你请求的数据 实际显示正常。 299 00:14:12,700 --> 00:14:16,350 每个人都在这一点很确定 短暂的高层次明白了吗? 300 00:14:16,350 --> 00:14:18,510 凉。 301 00:14:18,510 --> 00:14:21,550 >> 于是我们将移动 到谈论HTTP,这 302 00:14:21,550 --> 00:14:24,610 仅仅是超文本传输​​协议。 303 00:14:24,610 --> 00:14:32,550 HTTP,所有这一切是任何页面 或文件被访问您的网站上, 304 00:14:32,550 --> 00:14:35,810 服务器返回一个HTTP 在响应状态代码 305 00:14:35,810 --> 00:14:39,869 于该请求确保 或者,哦,这个请求经历。 306 00:14:39,869 --> 00:14:41,410 而一切都显示正常。 307 00:14:41,410 --> 00:14:43,500 或者说,哦,不,404。 308 00:14:43,500 --> 00:14:44,730 出了些问题。 309 00:14:44,730 --> 00:14:45,940 哦,我不能显示。 310 00:14:45,940 --> 00:14:50,370 >> 所有这是是什么 您尝试访问, 311 00:14:50,370 --> 00:14:55,160 作为用户使用正试图访问, 在internet--只是确保 312 00:14:55,160 --> 00:15:00,080 你可能成功,也有 访问无论是与否 313 00:15:00,080 --> 00:15:02,080 成功访问不管它是什么。 314 00:15:02,080 --> 00:15:05,120 这样一来,HTTP状态 代码只是为您提供 315 00:15:05,120 --> 00:15:09,910 是能够知道是否一个装置 或者不是很成功与否。 316 00:15:09,910 --> 00:15:13,440 因此,例如,一个示例请求。 317 00:15:13,440 --> 00:15:16,050 >> 在这里你可以看到它的 通常一般四行。 318 00:15:16,050 --> 00:15:22,530 我们有一个GET HTTP 1.1,这仅仅是 该方法请求的URL,协议 319 00:15:22,530 --> 00:15:24,490 版本,字段名, 和字段值。 320 00:15:24,490 --> 00:15:26,810 所以完全没必要 这里记住任何东西。 321 00:15:26,810 --> 00:15:29,960 只是那种熟悉 自己与如何将这些看。 322 00:15:29,960 --> 00:15:34,060 >> 在本实施例中,该方法要求 URL只是任何要求 323 00:15:34,060 --> 00:15:35,620 您发送的服务器。 324 00:15:35,620 --> 00:15:40,710 就像,嘿嘿,服务器,我真想 访问yadda,yadda,yadda,HTTP页面。 325 00:15:40,710 --> 00:15:43,785 协议版本只是什么 版本的主机或服务器 326 00:15:43,785 --> 00:15:45,490 用于访问信息。 327 00:15:45,490 --> 00:15:49,510 >> 该字段名的网站或 那你要访问的URL, 328 00:15:49,510 --> 00:15:52,610 在这种情况下,www.apple.com。 329 00:15:52,610 --> 00:15:56,110 和字段值是 只是典型的名称,值。 330 00:15:56,110 --> 00:15:59,540 它可以是任何类型的组合的 字母或数字或什么的。 331 00:15:59,540 --> 00:16:02,890 >> 因此,一个典型的请求,所以 其实你的电脑 332 00:16:02,890 --> 00:16:08,400 发送给,说,哎服务器, 你知道我需要这显示, 333 00:16:08,400 --> 00:16:13,000 这是那种要求 他们实际上得到。 334 00:16:13,000 --> 00:16:16,760 什么样的实例响应 服务器会发送回您 335 00:16:16,760 --> 00:16:20,320 将几乎同样的事情, 除与在顶部的状态代码。 336 00:16:20,320 --> 00:16:24,550 所以200,2 0 0总是 该状态代码确定。 337 00:16:24,550 --> 00:16:26,050 就像,OK,这个请求经历。 338 00:16:26,050 --> 00:16:27,980 你是能够访问 一切正常。 339 00:16:27,980 --> 00:16:28,810 生活很好。 340 00:16:28,810 --> 00:16:29,990 生活是美好。 341 00:16:29,990 --> 00:16:32,150 一切都完全好。 342 00:16:32,150 --> 00:16:36,050 >> 所以,这只是告诉浏览器, 你的服务器,嘿嘿,一切都很好。 343 00:16:36,050 --> 00:16:37,470 我得到了所有我需要的信息。 344 00:16:37,470 --> 00:16:39,160 凉。 345 00:16:39,160 --> 00:16:41,790 但问题是 有时问题上来 346 00:16:41,790 --> 00:16:46,850 当你have--最后我想 我谈到重复。 347 00:16:46,850 --> 00:16:48,870 你有不太好的反应。 348 00:16:48,870 --> 00:16:52,660 >> 因此,例如,404 是找不到网页。 349 00:16:52,660 --> 00:16:54,897 有时你有一个禁止访问。 350 00:16:54,897 --> 00:16:56,730 可使用不同的其它 我是状态码 351 00:16:56,730 --> 00:16:59,688 确保你当你都看到了 努力做研究在互联网上。 352 00:16:59,688 --> 00:17:02,300 你的浏览器给你 对,不,不能访问。 353 00:17:02,300 --> 00:17:04,190 而你喜欢,好了,废话。 354 00:17:04,190 --> 00:17:09,260 >> 因此,只要好看多了,有 一些很常见的状态码。 355 00:17:09,260 --> 00:17:14,109 也许熟悉 有哪些那些。 356 00:17:14,109 --> 00:17:16,000 最有趣的一个 我想我已经听过 357 00:17:16,000 --> 00:17:18,040 of--如果你碰巧 查找所有的人 358 00:17:18,040 --> 00:17:21,490 线上,由于某种原因,有 实际上是一个真正的状态码 359 00:17:21,490 --> 00:17:26,619 所谓418我是一个茶壶。 360 00:17:26,619 --> 00:17:29,610 >> 我GOOGLE了哪里 这个起源是从。 361 00:17:29,610 --> 00:17:33,150 而且很显然四月的一个愚人节 日在几十年前, 362 00:17:33,150 --> 00:17:36,415 有人认为这将是热闹 创建一个名为418一个新的状态码 363 00:17:36,415 --> 00:17:37,380 我是一个茶壶。 364 00:17:37,380 --> 00:17:40,760 合法,这个名字 代码被称为我是一个茶壶。 365 00:17:40,760 --> 00:17:43,670 >> 我忘了你要什么页 去实际上使这种显示屏。 366 00:17:43,670 --> 00:17:47,955 但很显然,你其实可以 得到他的代码我 367 00:17:47,955 --> 00:17:51,400 一个茶壶不知何故 通过做一些事情。 368 00:17:51,400 --> 00:17:54,480 因此,有成百上千 数以百计的状态代码。 369 00:17:54,480 --> 00:17:56,730 >> 他们中有些人赚更多 感觉比其他人。 370 00:17:56,730 --> 00:18:01,430 但几乎只是熟悉 特性的最常见的。 371 00:18:01,430 --> 00:18:04,090 请求的实体主体是 短而粗壮,很明显。 372 00:18:04,090 --> 00:18:07,990 >> 所以有时也有更多的 比我可怕的错误是一个茶壶。 373 00:18:07,990 --> 00:18:11,210 但是,这是一个我猜 那种你希望打。 374 00:18:11,210 --> 00:18:14,130 但是,我不认为你会的。 375 00:18:14,130 --> 00:18:17,260 每个人都好就只是状态 码,请求,过程,制造 376 00:18:17,260 --> 00:18:19,155 确保信息传递正确? 377 00:18:19,155 --> 00:18:22,270 378 00:18:22,270 --> 00:18:26,120 >> 所以,现在我们要转变 成部分,今天一个有趣的部分, 379 00:18:26,120 --> 00:18:28,500 我们谈一点关于HTML的地方。 380 00:18:28,500 --> 00:18:32,580 HTML,全部是超文本 标记语言。 381 00:18:32,580 --> 00:18:35,160 这只是标准的语言 用于创建所有网络 382 00:18:35,160 --> 00:18:36,690 互联网上的网页。 383 00:18:36,690 --> 00:18:39,560 >> 因此,任何网页,什么是 你最喜欢的网页? 384 00:18:39,560 --> 00:18:40,855 什么是你最喜欢的网页? 385 00:18:40,855 --> 00:18:41,771 >> 听众:[听不清]。 386 00:18:41,771 --> 00:18:42,270 387 00:18:42,270 --> 00:18:43,090 ANDI彭:对不起? 388 00:18:43,090 --> 00:18:43,980 >> 听众:的tumblr。 389 00:18:43,980 --> 00:18:44,730 >> ANDI彭:的tumblr。 390 00:18:44,730 --> 00:18:46,800 这样的tumblr被写在HTML。 391 00:18:46,800 --> 00:18:50,700 因此,我们要真正去通过,并 玩弄一些这些东西 392 00:18:50,700 --> 00:18:51,980 稍后的。 393 00:18:51,980 --> 00:18:54,980 几乎所有你 需要学习,要知道, 394 00:18:54,980 --> 00:18:58,540 写HTML你也许可以 只是谷歌在互联网上。 395 00:18:58,540 --> 00:19:04,490 >> HTML,它不是像C程序 在这里您可以创建变量,做 396 00:19:04,490 --> 00:19:05,600 很酷的事情吧。 397 00:19:05,600 --> 00:19:08,747 它更多的只是,呵呵,这就是我 想要的东西出现在我的网站。 398 00:19:08,747 --> 00:19:10,080 而我只是打算把它研究。 399 00:19:10,080 --> 00:19:12,160 而且它会设置样式。 400 00:19:12,160 --> 00:19:15,650 >> 所以HTML,从某种意义上说,它就像 格式化或模板语言。 401 00:19:15,650 --> 00:19:16,680 这是一个容易得多。 402 00:19:16,680 --> 00:19:19,030 这是一个更容易学习, 一个更容易写 403 00:19:19,030 --> 00:19:21,450 比典型的编程 语言,很容易, 404 00:19:21,450 --> 00:19:24,310 非常用户可访问的,友好的。 405 00:19:24,310 --> 00:19:29,040 >> 因此,我们实际上要发挥 各地,我们自己写的网页今天。 406 00:19:29,040 --> 00:19:32,900 但是,在我们开始之前,我只是想 去了一些简短的最佳实践。 407 00:19:32,900 --> 00:19:35,660 由于HTML就是这样一个简单的 语言,因为即使 408 00:19:35,660 --> 00:19:39,012 如果你做一对夫妇的事情错了, 它有时可能没有注意到, 409 00:19:39,012 --> 00:19:41,970 我们要确保我们 实际上秉承了我们的最佳实践 410 00:19:41,970 --> 00:19:44,490 以确保事情 可以绕来绕去,但 411 00:19:44,490 --> 00:19:49,660 并不总是会不会向右走 确保他们最小化。 412 00:19:49,660 --> 00:19:53,570 >> 因此,相当多,要确保 您关闭所有标签 413 00:19:53,570 --> 00:19:54,737 你写的HTML时。 414 00:19:54,737 --> 00:19:56,486 如果你打开 身体,确保你 415 00:19:56,486 --> 00:19:58,015 关闭它与身体某处。 416 00:19:58,015 --> 00:20:00,720 你要确保你的 网页验证通过 417 00:20:00,720 --> 00:20:02,070 什么叫W3验证。 418 00:20:02,070 --> 00:20:05,460 你可以谷歌,网上, 并有一个链接到它。 419 00:20:05,460 --> 00:20:07,820 >> 然后你要 单独的HTML,这 420 00:20:07,820 --> 00:20:13,060 是你的标记语言来自你的风采, 这是CSS语言,大卫 421 00:20:13,060 --> 00:20:17,510 证明我们也 要发挥一点与讲座。 422 00:20:17,510 --> 00:20:19,120 凉。 423 00:20:19,120 --> 00:20:23,500 所以,任何时候你想运行 HTML的CS50家电, 424 00:20:23,500 --> 00:20:26,240 我们要运行 程序调用了Apache, 425 00:20:26,240 --> 00:20:29,810 所有这只是一个内置的 Web服务器,每个人都在CS50 426 00:20:29,810 --> 00:20:31,410 访问。 427 00:20:31,410 --> 00:20:35,700 我们称之为apache50仅仅因为我们 喜欢叫在CS50的一切50。 428 00:20:35,700 --> 00:20:39,610 >> 所以,你开始的CS50网页的方式 服务器是通过键入您的命令上 429 00:20:39,610 --> 00:20:42,860 行apache50启动点。 430 00:20:42,860 --> 00:20:46,665 如果你想在任何结束它 的时候,你就apache50最终没有点。 431 00:20:46,665 --> 00:20:47,910 而你只需要敲击回车。 432 00:20:47,910 --> 00:20:50,810 它应该是标题在这里很快。 433 00:20:50,810 --> 00:20:53,630 434 00:20:53,630 --> 00:20:54,130 对。 435 00:20:54,130 --> 00:20:58,110 所以,我只是要赶紧走了过来 一个非常简单的网页的一个例子。 436 00:20:58,110 --> 00:21:00,280 我们打​​算花 像10,15分钟的上场 437 00:21:00,280 --> 00:21:04,008 各地编写我们自己的网页。 438 00:21:04,008 --> 00:21:05,320 好。 439 00:21:05,320 --> 00:21:07,841 因此,这里的IDE-- 每个人都可以看到了吗? 440 00:21:07,841 --> 00:21:08,340 不是真的。 441 00:21:08,340 --> 00:21:11,400 在这里,我将进行放大。 442 00:21:11,400 --> 00:21:15,850 >> 我刚刚得到这个简单的模板 这里没有什么实际的。 443 00:21:15,850 --> 00:21:20,660 我们只是要快速编写 一个HTML程序中,我们只 444 00:21:20,660 --> 00:21:22,050 打招呼的世界。 445 00:21:22,050 --> 00:21:24,970 在C,现在我们那么一回事 只是要做到这一点在HTML中。 446 00:21:24,970 --> 00:21:28,250 没有人想实际只 尝试给我的第一件事情,你 447 00:21:28,250 --> 00:21:31,870 必须放在一个HTML文档? 448 00:21:31,870 --> 00:21:32,850 是啊。 449 00:21:32,850 --> 00:21:35,965 >> 听众:括号中,[听不清]。 450 00:21:35,965 --> 00:21:36,590 ANDI彭:是的。 451 00:21:36,590 --> 00:21:47,200 452 00:21:47,200 --> 00:21:50,930 所以东西是非常独特的,以 HTML即我们通常传统 453 00:21:50,930 --> 00:21:56,080 请不要在其他命令不会遇到 线路电平编程语言 454 00:21:56,080 --> 00:21:59,890 是,我们实际上是 指定文件的类型 455 00:21:59,890 --> 00:22:01,987 这将是 在我们的代码的顶部。 456 00:22:01,987 --> 00:22:04,570 因此,在这个instance--我想 这是正确的命令,对不对? 457 00:22:04,570 --> 00:22:10,050 458 00:22:10,050 --> 00:22:10,550 对。 459 00:22:10,550 --> 00:22:14,860 在顶部,你只是想包括 括号内的爆炸DOCTYPE HTML只 460 00:22:14,860 --> 00:22:17,670 告诉您的计算机,嘿嘿,看出来了。 461 00:22:17,670 --> 00:22:20,050 而HTML文档即将到来。 462 00:22:20,050 --> 00:22:22,250 然后我们怎么想 开始了我们的文件? 463 00:22:22,250 --> 00:22:25,540 如果我们只是想打个招呼,有 网页,打招呼的世界, 464 00:22:25,540 --> 00:22:26,915 我们怎么去建设呢? 465 00:22:26,915 --> 00:22:32,910 466 00:22:32,910 --> 00:22:35,300 >> 其实,让我们转向谷歌。 467 00:22:35,300 --> 00:22:36,910 我们可以真正做到这一点。 468 00:22:36,910 --> 00:22:43,170 469 00:22:43,170 --> 00:22:43,670 对。 470 00:22:43,670 --> 00:22:44,840 在那里,我们走了。 471 00:22:44,840 --> 00:22:47,630 所以HTML。 472 00:22:47,630 --> 00:22:52,390 正如你所看到的,我的浏览器实际上是 自动造型这对我来说。 473 00:22:52,390 --> 00:22:56,010 >> 同样的事情在C,当你 创建一个开放的大括号, 474 00:22:56,010 --> 00:22:59,020 您的浏览器自动 增加了在接近大括号。 475 00:22:59,020 --> 00:23:02,210 幸运的是,我们的IDE爱 这样做对我们来说也是一样。 476 00:23:02,210 --> 00:23:05,490 所以,现在我们可以种类型 一个标签的开始, 477 00:23:05,490 --> 00:23:09,139 并且它会随时告诉我们 记得键入标记的结束。 478 00:23:09,139 --> 00:23:10,680 我认为这需要资本。 479 00:23:10,680 --> 00:23:15,510 480 00:23:15,510 --> 00:23:21,760 然后,我们要添加,一如既往, 一个头,这是冠军。 481 00:23:21,760 --> 00:23:25,270 482 00:23:25,270 --> 00:23:29,160 我们只是想也许叫 这种招呼,然后身体。 483 00:23:29,160 --> 00:23:34,010 484 00:23:34,010 --> 00:23:36,310 >> 而且你去那里。 485 00:23:36,310 --> 00:23:39,650 这实际上是我们的HTML文档。 486 00:23:39,650 --> 00:23:45,030 这样的方式,任何HTML文档 总是称呼in--同样的事情 487 00:23:45,030 --> 00:23:46,720 与诠释主作废。 488 00:23:46,720 --> 00:23:49,600 你总是想有 HTML中打开和关闭标签 489 00:23:49,600 --> 00:23:52,100 在你的代码的顶部和底部。 490 00:23:52,100 --> 00:23:56,900 >> 你想拥有一个脑袋里面 其中包含标题,只是什么 491 00:23:56,900 --> 00:24:01,430 是要显示你的网页的标签 页,然后一个机构,它的内部 492 00:24:01,430 --> 00:24:04,120 实际上显示的内容 无论你想做的事情。 493 00:24:04,120 --> 00:24:08,220 所以,如果你想实际运行 这一点,我要放大出来。 494 00:24:08,220 --> 00:24:12,740 实际上,你可以启动 apache50启动点。 495 00:24:12,740 --> 00:24:15,650 496 00:24:15,650 --> 00:24:16,150 凉。 497 00:24:16,150 --> 00:24:18,980 所以你可以看到,现在 此链接已弹出。 498 00:24:18,980 --> 00:24:21,940 它说你的网站是现在 可从下面的一些链接。 499 00:24:21,940 --> 00:24:25,910 所以我们所有的IDE拥有done-- 没有IDE,sorry--是啊, 500 00:24:25,910 --> 00:24:33,280 我们的IDE所做的就是创建一个web 链接在其所有的网页 501 00:24:33,280 --> 00:24:35,407 可以在服务器上被访问。 502 00:24:35,407 --> 00:24:36,490 因此,让我们来看看在这里。 503 00:24:36,490 --> 00:24:40,240 >> 让我们点击这个,去hello.html的。 504 00:24:40,240 --> 00:24:42,895 而你看到一个非常简单的 网页为世界你好。 505 00:24:42,895 --> 00:24:46,477 506 00:24:46,477 --> 00:24:47,420 好。 507 00:24:47,420 --> 00:24:50,513 我们真的要只 有everyone--是啊,这是怎么回事? 508 00:24:50,513 --> 00:24:52,353 >> 观众:我有一个基本的问题。 509 00:24:52,353 --> 00:24:52,978 ANDI彭:是的。 510 00:24:52,978 --> 00:24:58,064 听众:你如何保存 文件为HTML? 511 00:24:58,064 --> 00:24:58,730 ANDI彭:是的。 512 00:24:58,730 --> 00:25:02,960 513 00:25:02,960 --> 00:25:10,820 所以,如果我要创建一个新的文件, 如果我做的新文件,Untittle,如果我这样做, 514 00:25:10,820 --> 00:25:14,390 section.html,咚, 这就是我要做的。 515 00:25:14,390 --> 00:25:15,363 >> 听众:[听不清]? 516 00:25:15,363 --> 00:25:15,946 ANDI彭:没有。 517 00:25:15,946 --> 00:25:16,660 听众:[听不清]。 518 00:25:16,660 --> 00:25:17,240 ANDI彭:没有。 519 00:25:17,240 --> 00:25:18,156 听众:[听不清]。 520 00:25:18,156 --> 00:25:19,110 ANDI彭:是的。 521 00:25:19,110 --> 00:25:24,300 好看多了,在延伸 该文件是你的IDE中, 522 00:25:24,300 --> 00:25:27,840 它告诉计算机,即 告诉浏览器,嘿嘿,看出来了。 523 00:25:27,840 --> 00:25:30,480 这将是代码 用这种语言编写。 524 00:25:30,480 --> 00:25:34,240 因此,例如,在微软 一句话,怎么所有Word文档 525 00:25:34,240 --> 00:25:37,070 有什么扩展名结尾? 526 00:25:37,070 --> 00:25:39,830 .doc或.DOCX,对不对? 527 00:25:39,830 --> 00:25:42,299 >> 所有这些都指定到 您的操作系统,嘿嘿, 528 00:25:42,299 --> 00:25:43,840 你已经有了一个Word文档来了。 529 00:25:43,840 --> 00:25:44,940 在Word中打开它。 530 00:25:44,940 --> 00:25:46,955 同样的事情与PDF文件。 531 00:25:46,955 --> 00:25:49,650 它知道,哦,我需要 打开这个文件 532 00:25:49,650 --> 00:25:52,020 与Adobe Reader或Adobe Acrobat。 533 00:25:52,020 --> 00:25:56,130 >> 因此扩展操作 同样的方式在您的计算机。 534 00:25:56,130 --> 00:26:00,750 如果您指定的代码页 被命名为HTML,那么它知道, 535 00:26:00,750 --> 00:26:01,880 哦,你有HTML代码。 536 00:26:01,880 --> 00:26:04,890 我打算把它当作HTML代码。 537 00:26:04,890 --> 00:26:06,600 因此,它是在这个意义上超级智能。 538 00:26:06,600 --> 00:26:11,360 539 00:26:11,360 --> 00:26:18,730 >> 所以每个人,让我们像10分钟 而刚刚创造我们自己的网站。 540 00:26:18,730 --> 00:26:21,020 让我们增加了可爱的东西。 541 00:26:21,020 --> 00:26:23,440 随意说任何你想要的。 542 00:26:23,440 --> 00:26:27,890 我只是想确保 每个人的服务器是否正常运行 543 00:26:27,890 --> 00:26:31,220 我们免费之前,你到处理器集。 544 00:26:31,220 --> 00:26:33,490 因为如果你的服务器 不为pset的运行, 545 00:26:33,490 --> 00:26:34,847 这将是非常糟糕。 546 00:26:34,847 --> 00:27:17,380 547 00:27:17,380 --> 00:27:21,093 >> 我只是要漂浮和 看到每个人的工作。 548 00:27:21,093 --> 00:27:26,965 549 00:27:26,965 --> 00:27:27,590 怎么样了? 550 00:27:27,590 --> 00:27:29,048 >> 听众:我只是把我的电脑上。 551 00:27:29,048 --> 00:27:29,923 >> ANDI彭:这是确定的。 552 00:27:29,923 --> 00:27:41,200 553 00:27:41,200 --> 00:27:42,390 >> 听众:[听不清]。 554 00:27:42,390 --> 00:27:44,284 >> ANDI彭:只要你的IDE。 555 00:27:44,284 --> 00:27:44,784 是啊。 556 00:27:44,784 --> 00:27:54,040 557 00:27:54,040 --> 00:27:55,910 >> 听众:[听不清]。 558 00:27:55,910 --> 00:27:57,590 >> ANDI彭:这是确定的。 559 00:27:57,590 --> 00:27:59,491 >> 听众:[听不清]。 560 00:27:59,491 --> 00:28:00,490 ANDI彭:完全罚款。 561 00:28:00,490 --> 00:28:47,705 562 00:28:47,705 --> 00:28:51,530 是每个人都访问 他们的网络服务器是否正常? 563 00:28:51,530 --> 00:28:52,970 是apache50运行是否正常? 564 00:28:52,970 --> 00:28:54,700 我觉得在一些 其他部分,我们 565 00:28:54,700 --> 00:28:58,790 曾与人没有问题 能够访问该服务器。 566 00:28:58,790 --> 00:28:59,290 是啊。 567 00:28:59,290 --> 00:29:05,764 所以,你只要运行apache50 空间开始太空时期。 568 00:29:05,764 --> 00:29:06,680 听众:[听不清]。 569 00:29:06,680 --> 00:29:07,610 ANDI彭:是的。 570 00:29:07,610 --> 00:29:08,294 好? 571 00:29:08,294 --> 00:29:09,210 >> 听众:[听不清]。 572 00:29:09,210 --> 00:29:12,530 573 00:29:12,530 --> 00:29:13,350 >> ANDI彭:哦,好。 574 00:29:13,350 --> 00:29:14,808 所以,你应该有一个空格。 575 00:29:14,808 --> 00:29:15,425 所以apache50-- 576 00:29:15,425 --> 00:29:16,115 >> 听众:我做到了。 577 00:29:16,115 --> 00:29:17,661 >> ANDI彭:--start空间。 578 00:29:17,661 --> 00:29:18,660 听众:哦,空间点。 579 00:29:18,660 --> 00:29:20,110 ANDI彭:是的,空间点。 580 00:29:20,110 --> 00:29:23,230 你去那里。 581 00:29:23,230 --> 00:29:25,490 于是,如果你有 创建的HTML页面, 582 00:29:25,490 --> 00:29:28,560 那么你可以直接进入 到它指定的链接。 583 00:29:28,560 --> 00:29:30,539 你应该能够访问它。 584 00:29:30,539 --> 00:29:35,130 585 00:29:35,130 --> 00:29:37,876 >> 每个人都能够 访问他们的网页可以吗? 586 00:29:37,876 --> 00:29:39,339 >> 听众:[听不清]。 587 00:29:39,339 --> 00:29:40,380 ANDI彭:哦,没关系。 588 00:29:40,380 --> 00:29:43,551 589 00:29:43,551 --> 00:29:44,964 >> 听众:[听不清]。 590 00:29:44,964 --> 00:29:45,630 ANDI彭:是的。 591 00:29:45,630 --> 00:29:48,171 我觉得你其实可以打开 它你的浏览器,在浏览器内 592 00:29:48,171 --> 00:29:49,955 而不仅仅是你的IDE浏览器。 593 00:29:49,955 --> 00:29:51,580 是的,我想如果你复制和粘贴。 594 00:29:51,580 --> 00:29:53,920 >> 听众:然后 我们如何把它关掉? 595 00:29:53,920 --> 00:29:54,590 [听不清] 596 00:29:54,590 --> 00:29:58,720 >> ANDI彭:是啊,你这样做 apache50停止与无期。 597 00:29:58,720 --> 00:29:59,220 对。 598 00:29:59,220 --> 00:30:01,180 >> 听众:[听不清]。 599 00:30:01,180 --> 00:30:02,768 >> ANDI彭:由于没有时间。 600 00:30:02,768 --> 00:30:04,051 是啊。 601 00:30:04,051 --> 00:30:04,550 在那里,我们走了。 602 00:30:04,550 --> 00:30:05,050 对。 603 00:30:05,050 --> 00:30:08,480 604 00:30:08,480 --> 00:30:09,855 我们正在创建自己的网页。 605 00:30:09,855 --> 00:30:10,646 >> 听众:哦,爽。 606 00:30:10,646 --> 00:30:13,396 607 00:30:13,396 --> 00:30:14,062 ANDI彭:是的。 608 00:30:14,062 --> 00:30:20,484 609 00:30:20,484 --> 00:30:22,420 >> 观众:我有一个问题。 610 00:30:22,420 --> 00:30:25,294 所以阿帕奇50-- 611 00:30:25,294 --> 00:30:26,731 >> ANDI彭:50,是的。 612 00:30:26,731 --> 00:30:28,168 >> 听众:[听不清]。 613 00:30:28,168 --> 00:30:29,130 >> ANDI彭:什么? 614 00:30:29,130 --> 00:30:29,750 这是奇怪的。 615 00:30:29,750 --> 00:30:32,244 看,这就是问题的一种 这是发生之前。 616 00:30:32,244 --> 00:30:37,820 617 00:30:37,820 --> 00:30:38,730 好。 618 00:30:38,730 --> 00:30:39,800 部分后来见我。 619 00:30:39,800 --> 00:30:42,320 因为我们有一些 问题与服务器。 620 00:30:42,320 --> 00:30:44,325 >> 而你想 确保你的服务器是 621 00:30:44,325 --> 00:30:45,700 在开始之前,PSET运行。 622 00:30:45,700 --> 00:30:47,800 因为你会需要它。 623 00:30:47,800 --> 00:30:48,300 是啊。 624 00:30:48,300 --> 00:30:51,299 是否有其他人还没有被 能够得到他们的服务器开始? 625 00:30:51,299 --> 00:31:12,410 626 00:31:12,410 --> 00:31:17,840 >> 对于那些你们谁想要添加 额外的风格,以自己的网页, 627 00:31:17,840 --> 00:31:20,450 我们其实可以做什么 在讲座大卫就很好, 628 00:31:20,450 --> 00:31:24,070 这是创建一个额外的样式 片,这是一个点的CSS,层叠 629 00:31:24,070 --> 00:31:30,080 样式表,实际上只是添加入。 630 00:31:30,080 --> 00:31:33,550 因此,例如,我刚刚创建 几乎差不多的确切同一台 631 00:31:33,550 --> 00:31:37,180 大卫做了讲座。 632 00:31:37,180 --> 00:31:39,220 您可以非常简单,只是做全身。 633 00:31:39,220 --> 00:31:45,980 >> 你有所谓的标签,其中 可应用于IDE任何部分 634 00:31:45,980 --> 00:31:48,650 你想在你的 实际为HTML页面。 635 00:31:48,650 --> 00:31:54,890 所以页面的主体,就 可以做文字居中对齐。 636 00:31:54,890 --> 00:31:58,110 然后我会创意 里面的标签叫做顶 637 00:31:58,110 --> 00:32:01,860 其中,我想这些东西 发生,分配一个更大的像素尺寸 638 00:32:01,860 --> 00:32:03,104 的字体。 639 00:32:03,104 --> 00:32:04,520 我想字体粗细要大胆。 640 00:32:04,520 --> 00:32:06,478 而我想要的颜色,以 是蓝色的,只是随心所欲 641 00:32:06,478 --> 00:32:08,570 价值观,我决定选择。 642 00:32:08,570 --> 00:32:10,870 我可以创建一个名为中间另一个标记。 643 00:32:10,870 --> 00:32:12,640 字体大小,使它有点小。 644 00:32:12,640 --> 00:32:17,730 然后,我可以创建另一个标签 所谓的底部在哪里我想要的字体大小 645 00:32:17,730 --> 00:32:20,900 甚至可以说仍然较小。 646 00:32:20,900 --> 00:32:25,630 >> 所以,几乎这仅仅是例子 源代码或源的样式表的 647 00:32:25,630 --> 00:32:27,400 它很容易只是谷歌。 648 00:32:27,400 --> 00:32:31,560 如果你说,哦,我想我的字体 以斜体和深绿色, 649 00:32:31,560 --> 00:32:33,980 你也许可以谷歌, 然后它会告诉你 650 00:32:33,980 --> 00:32:37,590 适当的标签或标识创建。 651 00:32:37,590 --> 00:32:41,670 这样一来,这样你实际上会 一种具有此在HTML文档 652 00:32:41,670 --> 00:32:45,660 或者用它是所有你 做的,是在头 653 00:32:45,660 --> 00:32:48,560 添加一个链接到样式表。 654 00:32:48,560 --> 00:32:53,600 >> 所以,你可以只是链接的href等号 不管你的样式表的名称 655 00:32:53,600 --> 00:32:54,590 是。 656 00:32:54,590 --> 00:32:56,740 然后关系 是一个样式表。 657 00:32:56,740 --> 00:33:00,700 因此,任何HTML文档中,只要 因为你有这点CSS表, 658 00:33:00,700 --> 00:33:07,140 你应该能够访问 和具有属性那里。 659 00:33:07,140 --> 00:33:10,370 >> 因此,例如,在这里,我只是 创建另一个例子网页。 660 00:33:10,370 --> 00:33:15,680 这是欢迎CS50节 星期二从2点到3点30分我。 661 00:33:15,680 --> 00:33:20,300 然后,我添加了一个可爱的形象, 我们可能应该能看到。 662 00:33:20,300 --> 00:33:24,620 >> 所以,如果你在这里看看, 如果你去style.html, 663 00:33:24,620 --> 00:33:26,310 我们创建了一个网页与小猫。 664 00:33:26,310 --> 00:33:29,420 由于小猫是真棒。 665 00:33:29,420 --> 00:33:33,570 因此,添加图像仅仅是IMG SRC链接。 666 00:33:33,570 --> 00:33:36,260 667 00:33:36,260 --> 00:33:38,310 >> 差不多,如果有 任何类型的功能 668 00:33:38,310 --> 00:33:40,268 要添加到您的 website--所以我们可以说, 669 00:33:40,268 --> 00:33:43,290 要添加一个菜单 或搜索栏或类似 670 00:33:43,290 --> 00:33:46,450 一个image--只是谷歌如何做到这一点。 671 00:33:46,450 --> 00:33:48,277 而你只是扑通这种格式。 672 00:33:48,277 --> 00:33:50,110 你可以只是漂亮 多只加入。 673 00:33:50,110 --> 00:33:52,670 这是真的,真的很容易。 674 00:33:52,670 --> 00:33:55,014 >> 我们正在创造我们自己的 网页现在。 675 00:33:55,014 --> 00:33:55,680 如果你想 - 676 00:33:55,680 --> 00:33:56,580 >> 听众:[听不清] 677 00:33:56,580 --> 00:33:57,470 >> ANDI彭:对不起? 678 00:33:57,470 --> 00:33:59,310 >> 听众:[听不清]。 679 00:33:59,310 --> 00:34:01,340 >> ANDI彭:呵呵, DIV只是一个事业部 680 00:34:01,340 --> 00:34:04,370 告诉我说,哦,我有 某一段被称为 681 00:34:04,370 --> 00:34:07,480 中间在我申请 我的CSS标签,然后 682 00:34:07,480 --> 00:34:09,619 我的其他事业部的底部。 683 00:34:09,619 --> 00:34:10,785 这一切都在告诉你。 684 00:34:10,785 --> 00:34:12,743 因为这是很好的保持 东西整齐有序, 685 00:34:12,743 --> 00:34:16,304 因此程序知道究竟如何运行。 686 00:34:16,304 --> 00:34:18,929 并认为我可以复制粘贴此 到我的实际的浏览器也是如此。 687 00:34:18,929 --> 00:34:21,110 它应该是罚款。 688 00:34:21,110 --> 00:34:21,610 是啊。 689 00:34:21,610 --> 00:34:24,330 690 00:34:24,330 --> 00:34:25,989 好极了。 691 00:34:25,989 --> 00:34:29,380 因此,如果每个人都希望只 尝试创建一个网页, 692 00:34:29,380 --> 00:34:32,169 我们将采取两到三分钟。 693 00:34:32,169 --> 00:34:34,460 我只是想确认 每个人的服务器正在运行 694 00:34:34,460 --> 00:34:36,941 家家都有一 想法如何做到这一点。 695 00:34:36,941 --> 00:34:38,774 如果你们想 拿出你的计算机。 696 00:34:38,774 --> 00:34:44,630 697 00:34:44,630 --> 00:34:45,635 仍然没有工作? 698 00:34:45,635 --> 00:34:47,420 >> 听众:我只是[听不清]。 699 00:34:47,420 --> 00:34:49,838 >> ANDI彭:也许尝试更新50为好。 700 00:34:49,838 --> 00:34:51,392 是啊。 701 00:34:51,392 --> 00:34:52,308 听众:[听不清]。 702 00:34:52,308 --> 00:35:17,502 703 00:35:17,502 --> 00:35:18,990 >> ANDI彭:是的。 704 00:35:18,990 --> 00:35:23,750 所以,你的方式开始新的 在IDE的Web服务器只是 705 00:35:23,750 --> 00:35:27,889 做apache50空间开始的空间点。 706 00:35:27,889 --> 00:35:30,430 我只是想确认 每个人的服务器运行正常。 707 00:35:30,430 --> 00:35:31,763 >> 听众:在这里,在终端上? 708 00:35:31,763 --> 00:35:33,334 ANDI彭:是的。 709 00:35:33,334 --> 00:35:34,250 听众:[听不清]。 710 00:35:34,250 --> 00:35:38,000 711 00:35:38,000 --> 00:35:38,985 >> ANDI彭:Apache的。 712 00:35:38,985 --> 00:35:42,010 其实,我认为你是 运行的东西了。 713 00:35:42,010 --> 00:35:43,145 是啊,你居然 运行不同的服务器。 714 00:35:43,145 --> 00:35:43,830 是啊,你是好。 715 00:35:43,830 --> 00:35:45,085 只要知道的工作,你真行。 716 00:35:45,085 --> 00:35:45,626 >> 听众:OK。 717 00:35:45,626 --> 00:35:47,615 ANDI彭:有两家 方式来运行的服务器。 718 00:35:47,615 --> 00:35:49,990 所以只要方式之一 正在工作,它的所有权利。 719 00:35:49,990 --> 00:36:18,470 720 00:36:18,470 --> 00:36:21,680 我们将采取一分钟 只是那种完成了 721 00:36:21,680 --> 00:36:25,280 任何的收尾 网页你们​​想拍。 722 00:36:25,280 --> 00:36:26,830 >> 是每个人工作的方式? 723 00:36:26,830 --> 00:36:30,910 每个人的服务器 除了为你运行? 724 00:36:30,910 --> 00:36:32,210 我们会明白这一点。 725 00:36:32,210 --> 00:36:34,137 和HTML的非常简单。 726 00:36:34,137 --> 00:36:35,220 所以,我认为我们都好。 727 00:36:35,220 --> 00:36:38,260 728 00:36:38,260 --> 00:36:38,760 是啊。 729 00:36:38,760 --> 00:36:41,070 我会回来的。 730 00:36:41,070 --> 00:36:42,797 >> 听众:[听不清]。 731 00:36:42,797 --> 00:36:43,380 ANDI彭:OK。 732 00:36:43,380 --> 00:36:44,770 听众:所以这只是 开始加载。 733 00:36:44,770 --> 00:36:45,686 ANDI彭:不用担心。 734 00:36:45,686 --> 00:36:49,590 735 00:36:49,590 --> 00:36:52,680 所以HTML,还有源代码 会后,部分在网上。 736 00:36:52,680 --> 00:36:54,810 此外,大卫有一个整体 一群在网上也是如此。 737 00:36:54,810 --> 00:36:58,190 只是种浏览一下它 看到HTML页面写入。 738 00:36:58,190 --> 00:36:59,920 这是相当容易的。 739 00:36:59,920 --> 00:37:03,979 什么,你不知道,你漂亮 简单,只是谷歌,你是好。 740 00:37:03,979 --> 00:37:06,270 我只是想确保 你的服务器运行。 741 00:37:06,270 --> 00:37:12,962 742 00:37:12,962 --> 00:37:14,880 >> 听众:是否经常这样做? 743 00:37:14,880 --> 00:37:16,421 >> ANDI彭:这是从来没有发生在我身上。 744 00:37:16,421 --> 00:37:18,470 745 00:37:18,470 --> 00:37:20,782 我不知道这甚至有可能冬眠。 746 00:37:20,782 --> 00:37:22,516 >> 听众:[听不清]。 747 00:37:22,516 --> 00:37:25,140 ANDI彭:我认为everyone-- 我的以前从未休眠。 748 00:37:25,140 --> 00:37:26,860 我不知道为什么。 749 00:37:26,860 --> 00:37:27,566 有点奇怪。 750 00:37:27,566 --> 00:37:29,310 >> 听众:[听不清]。 751 00:37:29,310 --> 00:37:30,643 >> ANDI彭:是你的冬眠? 752 00:37:30,643 --> 00:37:32,615 753 00:37:32,615 --> 00:37:33,669 >> 听众:[听不清]。 754 00:37:33,669 --> 00:37:34,335 ANDI彭:是的。 755 00:37:34,335 --> 00:37:39,122 756 00:37:39,122 --> 00:37:39,872 听众:这是确定的。 757 00:37:39,872 --> 00:37:40,622 因此,一旦它是开放的。 758 00:37:40,622 --> 00:37:41,760 ANDI彭:OK。 759 00:37:41,760 --> 00:37:43,940 我们会处理一些服务器 后段的​​问题。 760 00:37:43,940 --> 00:37:44,860 你应该罚款。 761 00:37:44,860 --> 00:37:47,950 虽然,你要确保你 让你离开之前他们解决。 762 00:37:47,950 --> 00:37:49,380 因为如果你的服务器的 没有运行,那么你 763 00:37:49,380 --> 00:37:52,004 不会是能够做到的 PSET,像任何部分处理器集的。 764 00:37:52,004 --> 00:37:54,200 所以,你要确保 这是的工作。 765 00:37:54,200 --> 00:37:54,831 凉。 766 00:37:54,831 --> 00:37:55,330 好吧。 767 00:37:55,330 --> 00:37:56,490 告别小猫。 768 00:37:56,490 --> 00:37:59,670 我花了很长时间寻找 这小猫的图片穿上。 769 00:37:59,670 --> 00:38:02,272 所以,反正。 770 00:38:02,272 --> 00:38:04,950 >> 听众:[听不清]。 771 00:38:04,950 --> 00:38:05,770 >> ANDI彭:对不起? 772 00:38:05,770 --> 00:38:07,345 >> 听众:[听不清]。 773 00:38:07,345 --> 00:38:08,970 ANDI彭:我认为这是在网站上。 774 00:38:08,970 --> 00:38:11,064 像规范? 775 00:38:11,064 --> 00:38:12,020 >> 听众:[听不清]。 776 00:38:12,020 --> 00:38:16,080 我认为,规范只是 网上七个星期 777 00:38:16,080 --> 00:38:18,850 我想,这就是所谓的pset6,甚至 虽然我们是在七个星期,这 778 00:38:18,850 --> 00:38:19,641 是位计算。 779 00:38:19,641 --> 00:38:23,130 听众:但我的意思是,如果你 想看看at--如果你 780 00:38:23,130 --> 00:38:28,666 想拉我们的版本 该网站从我们断绝? 781 00:38:28,666 --> 00:38:31,820 所以像server.c是处理器集,对不对? 782 00:38:31,820 --> 00:38:36,514 如果你想看看这个, 怎么样它检查出来? 783 00:38:36,514 --> 00:38:38,680 ANDI彭:哦,所以实际上 处理器集,所有我们正在做的 784 00:38:38,680 --> 00:38:41,405 这里implementing--在这里, 我去了这个简单。 785 00:38:41,405 --> 00:38:44,187 786 00:38:44,187 --> 00:38:47,020 因此,对于每一个人,这只是得到 第,你们是幸运的。 787 00:38:47,020 --> 00:38:49,340 很少有材料 实际支付的今天。 788 00:38:49,340 --> 00:38:52,585 >> 我只是要在接下来的 20分钟去在PSET帮助。 789 00:38:52,585 --> 00:38:55,210 因为有一些有用的 功能,这将有助于你的生活。 790 00:38:55,210 --> 00:38:57,501 并希望,我们会出 这里还有20分钟。 791 00:38:57,501 --> 00:38:58,360 好。 792 00:38:58,360 --> 00:39:00,252 >> 所以pset7是错误的。 793 00:39:00,252 --> 00:39:02,460 尽管我们是在周末 七,它实际上pset6。 794 00:39:02,460 --> 00:39:04,220 我会改变这种状况。 795 00:39:04,220 --> 00:39:07,550 我们所要做的pset6 正在创建的web服务器。 796 00:39:07,550 --> 00:39:09,010 这听起来超级吓人。 797 00:39:09,010 --> 00:39:11,010 >> 尤其是对那些 你们谁已经 798 00:39:11,010 --> 00:39:14,530 看了看分配代码, 有很多代码,大量的代码。 799 00:39:14,530 --> 00:39:15,570 但完全确定。 800 00:39:15,570 --> 00:39:17,750 因为细节问题 实际创建的一部分 801 00:39:17,750 --> 00:39:20,140 服务器是由我们来做。 802 00:39:20,140 --> 00:39:22,090 所有你真的问 在此做PSET 803 00:39:22,090 --> 00:39:25,350 只是做一些字符串操作 在文件I / O。它实际上 804 00:39:25,350 --> 00:39:27,570 像相当简单。 805 00:39:27,570 --> 00:39:30,830 >> 所以,当你第一次下载that--谁 这里实际上已经下载 806 00:39:30,830 --> 00:39:32,540 处理器集,并采取看看吗? 807 00:39:32,540 --> 00:39:33,040 好吧。 808 00:39:33,040 --> 00:39:33,540 是啊。 809 00:39:33,540 --> 00:39:36,042 还有像500行代码 那你要像, 810 00:39:36,042 --> 00:39:36,750 到底是怎么回事? 811 00:39:36,750 --> 00:39:38,177 而这完全罚款。 812 00:39:38,177 --> 00:39:39,760 请确保你看穿行。 813 00:39:39,760 --> 00:39:41,610 因为大卫和 - 我不知道。 814 00:39:41,610 --> 00:39:43,870 我不认为这是Zamyla的,这一个。 815 00:39:43,870 --> 00:39:47,040 但我认为其他一些 穿行测试是相当 816 00:39:47,040 --> 00:39:49,510 在以下方面有所帮助 只是让你知道 817 00:39:49,510 --> 00:39:51,780 到底是怎么回事你的代码中。 818 00:39:51,780 --> 00:39:53,330 >> 而这是完全确定。 819 00:39:53,330 --> 00:39:57,860 由于四大功能,你是 要求执行反倒 820 00:39:57,860 --> 00:39:59,720 零做实际的服务器。 821 00:39:59,720 --> 00:40:02,590 他们所要做的只是 分析不同的字符串, 822 00:40:02,590 --> 00:40:05,780 通过字符串搜索, 以确保一切都在做 823 00:40:05,780 --> 00:40:07,750 什么他们应该做的事情。 824 00:40:07,750 --> 00:40:11,200 >> 因此,为了这种效果,也有 一些非常有用的功能, 825 00:40:11,200 --> 00:40:13,630 尤其是对字符串 操控,是我们都应该 826 00:40:13,630 --> 00:40:15,879 去了,我认为我最好 对你们非常有用 827 00:40:15,879 --> 00:40:19,130 试图处理器集之前学习。 828 00:40:19,130 --> 00:40:23,350 而且他们都包含 在您的文件string.h库。 829 00:40:23,350 --> 00:40:25,980 有可能是更有用 我没有在这里包含的功能, 830 00:40:25,980 --> 00:40:30,740 因为我要么不使用它们或 也许我只是不知道它们的存在。 831 00:40:30,740 --> 00:40:32,440 >> 随意通过student.h一目了然。 832 00:40:32,440 --> 00:40:36,460 因为那里将是一个很大 的功能,这些功能非常有用的。 833 00:40:36,460 --> 00:40:43,050 因此,六,我用的最多的我 当我在过去的一周做PSET 834 00:40:43,050 --> 00:40:49,620 是的strtok,和strchr,strrcher, 的strstr,strcasecmp,和strcpy。 835 00:40:49,620 --> 00:40:53,060 这样一来,最后两个看似 非常熟悉你最。 836 00:40:53,060 --> 00:40:56,910 海峡情况相比,它是所有比较 字符串检查它们是否相等, 837 00:40:56,910 --> 00:40:58,110 包括大小写。 838 00:40:58,110 --> 00:41:01,430 和strcpy只是复制 一根弦到缓冲区中。 839 00:41:01,430 --> 00:41:04,430 >> 所以这两个应该非常 熟悉你们在这一点上。 840 00:41:04,430 --> 00:41:07,100 因为我们已经使用了他们很多, 特别是对于最后的pset。 841 00:41:07,100 --> 00:41:10,734 但前四也许 你有没有看到,直到如今。 842 00:41:10,734 --> 00:41:12,400 但是,我要只是穿行其中。 843 00:41:12,400 --> 00:41:15,620 因为他们将让你的生命 真的,真的很容易for--不容易, 844 00:41:15,620 --> 00:41:19,830 但对于很多这个即将到来的pset容易。 845 00:41:19,830 --> 00:41:20,420 >> 好。 846 00:41:20,420 --> 00:41:27,720 所以字符* strtok函数,这是功能 定义此功能包含 847 00:41:27,720 --> 00:41:31,050 在字符串,H库。 848 00:41:31,050 --> 00:41:34,340 如果您将得到字符的输入* 字符串,它只是一个字符串, 849 00:41:34,340 --> 00:41:38,220 或者常量的char * deliminator,DELIM的简称, 850 00:41:38,220 --> 00:41:42,410 所有它做的是打破了较大 字符串转换为一系列的我们称之为 851 00:41:42,410 --> 00:41:45,730 令牌由一定值分隔。 852 00:41:45,730 --> 00:42:03,340 因此,从某种意义上说,如果我要奉献 你section.7.php,这是一个字符串。 853 00:42:03,340 --> 00:42:09,520 >> 因此,这将是如果我是通过 在本作我的海峡,我的char *海峡, 854 00:42:09,520 --> 00:42:18,870 如果我的deliminator了点,这一切 会做的是通过字符串搜索。 855 00:42:18,870 --> 00:42:22,790 并在第一时间就看到一个点, 它只是返回指针 856 00:42:22,790 --> 00:42:25,830 对发现​​的最后一个令牌 在此之前的字符串。 857 00:42:25,830 --> 00:42:27,230 因此,这将在这里去。 858 00:42:27,230 --> 00:42:30,580 >> 而且它只是给我7.php。 859 00:42:30,580 --> 00:42:34,070 如果我要打电话 功能更多的时间, 860 00:42:34,070 --> 00:42:37,580 它会给我只是.PHP。 861 00:42:37,580 --> 00:42:41,540 所以,这一切功能是做 被打破了较大的字符串 862 00:42:41,540 --> 00:42:44,620 根据成较小的字符串 你在寻找什么。 863 00:42:44,620 --> 00:42:46,670 >> 因此,例如,在 你的样子了功能 864 00:42:46,670 --> 00:42:49,895 如果你想看看什么 某些字符来约 865 00:42:49,895 --> 00:42:54,280 或者点发生或扩展发生, 这个功能将是相当有用的。 866 00:42:54,280 --> 00:42:57,260 867 00:42:57,260 --> 00:42:59,010 是啊。 868 00:42:59,010 --> 00:42:59,510 别担心。 869 00:42:59,510 --> 00:43:01,339 这都将be--是啊,这是怎么回事? 870 00:43:01,339 --> 00:43:07,087 >> 听众:所以在第一线, 如果我们使用这个例子中, 871 00:43:07,087 --> 00:43:09,504 什么将我们插入了吗? 872 00:43:09,504 --> 00:43:10,170 ANDI彭:是的。 873 00:43:10,170 --> 00:43:13,000 874 00:43:13,000 --> 00:43:25,640 你只需拨打一个 strtok在字符串逗号DELIM。 875 00:43:25,640 --> 00:43:30,260 而字符串等于section.7.php。 876 00:43:30,260 --> 00:43:35,244 然后你DELIM 可以等于只是点缀。 877 00:43:35,244 --> 00:43:36,654 >> 听众:OK。 878 00:43:36,654 --> 00:43:39,010 >> ANDI彭:是的。 879 00:43:39,010 --> 00:43:41,266 就这样。 880 00:43:41,266 --> 00:43:43,890 所有这些功能都相当 类似的,当我们通过他们去。 881 00:43:43,890 --> 00:43:45,514 他们只是略有不同的事情。 882 00:43:45,514 --> 00:43:49,530 但是,他们都去 让你的生活轻松了许多。 883 00:43:49,530 --> 00:43:53,940 第二个功能,这其中的喜欢 超级,超级,超级重要的, 884 00:43:53,940 --> 00:43:58,254 是the--托起。 885 00:43:58,254 --> 00:44:07,560 886 00:44:07,560 --> 00:44:08,730 >> 哎呀。 887 00:44:08,730 --> 00:44:13,810 和strchr搜索第一 occurrence--实际上,是的。 888 00:44:13,810 --> 00:44:16,385 和strchr是功能 我绝对只是走过去。 889 00:44:16,385 --> 00:44:18,260 所以忽略了我说的话 用于第一功能。 890 00:44:18,260 --> 00:44:20,980 它实际上是所谓的和strchr。 891 00:44:20,980 --> 00:44:24,840 >> 那么这里会发生的事情是,如果 给您提供一个字符串的字符C, 892 00:44:24,840 --> 00:44:28,660 它只是给 你不管是什么样。 893 00:44:28,660 --> 00:44:29,230 是啊。 894 00:44:29,230 --> 00:44:33,700 所以,把它当做海峡,这 是一个字符串,CHR为char。 895 00:44:33,700 --> 00:44:38,621 因此,所有你想要做的是搜索 对于其中一个char是一个字符串中。 896 00:44:38,621 --> 00:44:41,120 所以它搜索第一 发生的字符的 897 00:44:41,120 --> 00:44:43,601 c。在字符串str。 898 00:44:43,601 --> 00:44:46,463 >> 听众:[听不清]。 899 00:44:46,463 --> 00:44:48,380 >> ANDI彭:是的。 900 00:44:48,380 --> 00:44:51,230 然后,如果它没有找到 它,它会返回NULL。 901 00:44:51,230 --> 00:44:54,313 因此,一些那将是非常 为你们做处理器集有用 902 00:44:54,313 --> 00:44:59,030 比如说,如果你正在寻找一种 扩展像.DOCX就一个字 903 00:44:59,030 --> 00:45:04,740 文档或.PDF为PDF文档, 有种你可以用它来看看 904 00:45:04,740 --> 00:45:08,720 无论什么是继 你看一个点,对每一次? 905 00:45:08,720 --> 00:45:11,880 因此相当多,如果你 运行通过的功能, 906 00:45:11,880 --> 00:45:13,610 如果它返回NULL, 那么你知道它 907 00:45:13,610 --> 00:45:17,292 没有发现它的点,这意味着这 显然不是有效的文件扩展名。 908 00:45:17,292 --> 00:45:19,000 或者,如果它返回 什么,你就知道 909 00:45:19,000 --> 00:45:21,940 这将返回任何的 实际上后延伸。 910 00:45:21,940 --> 00:45:24,190 所以,那些你们谁了 开始寻找通过查找 911 00:45:24,190 --> 00:45:28,640 和解析,这一功能的 将是超级有用。 912 00:45:28,640 --> 00:45:32,010 因此,我们实际上会 证明使用此。 913 00:45:32,010 --> 00:45:36,670 >> 为什么你们不尝试写一 功能布尔句话的char * s表示 914 00:45:36,670 --> 00:45:39,610 只是如果s是返回true 句子,否则为假。 915 00:45:39,610 --> 00:45:44,110 916 00:45:44,110 --> 00:45:46,830 因此提示,你会 以可能使用和strchr。 917 00:45:46,830 --> 00:45:50,420 或者你在刚刚搜索 串为一定的字符。 918 00:45:50,420 --> 00:45:54,950 所以,在一个句子, 什么分隔句子 919 00:45:54,950 --> 00:45:57,510 从非句, 有什么具体的人物? 920 00:45:57,510 --> 00:45:58,260 听众:一个空格。 921 00:45:58,260 --> 00:45:59,343 ANDI彭:一个空间,对不对? 922 00:45:59,343 --> 00:46:03,354 所以,我们怎么可能会 希望这个函数,在做什么? 923 00:46:03,354 --> 00:46:04,290 >> 听众:[听不清]。 924 00:46:04,290 --> 00:46:07,623 >> ANDI彭:我们将要和strchr 字符串空间的外观。 925 00:46:07,623 --> 00:46:11,330 因为如果它返回的东西,那么 我们知道,这一定是一个句子。 926 00:46:11,330 --> 00:46:14,510 这意味着,我们必须 在这个串的空间。 927 00:46:14,510 --> 00:46:17,660 >> 如果没有空间,那么我们就知道 这,哎,你猜它不是一个字符串。 928 00:46:17,660 --> 00:46:20,060 这可能只是一个很长的单词。 929 00:46:20,060 --> 00:46:23,242 所以,我给你们一对夫妇 分钟写此功能。 930 00:46:23,242 --> 00:46:44,398 931 00:46:44,398 --> 00:46:45,874 是啊。 932 00:46:45,874 --> 00:46:47,970 >> 听众:你得到 此字符串从用户? 933 00:46:47,970 --> 00:46:48,440 >> ANDI彭:是的。 934 00:46:48,440 --> 00:46:49,565 所以,这只是一个功能。 935 00:46:49,565 --> 00:46:54,586 所以,想象你的主函数中 你已经have--让我们去这里。 936 00:46:54,586 --> 00:47:00,040 937 00:47:00,040 --> 00:47:00,540 好。 938 00:47:00,540 --> 00:47:05,270 所以我写了这个节目里 我有我的主要功能在哪里 939 00:47:05,270 --> 00:47:07,432 我刚刚创建了两个字符串。 940 00:47:07,432 --> 00:47:09,890 第一个是嗨,我的名字 是Andi--显然,一个句子。 941 00:47:09,890 --> 00:47:13,240 我的第二个就是 岸堤,显然不是一句。 942 00:47:13,240 --> 00:47:18,390 >> 所以我跑这两个的 通过这个功能串。 943 00:47:18,390 --> 00:47:20,540 我想你们写寒句。 944 00:47:20,540 --> 00:47:23,380 而我保存了这些值, 然后只需打印出来。 945 00:47:23,380 --> 00:47:26,549 因此,认为该用户是 要传递一个字符串。 946 00:47:26,549 --> 00:47:29,590 然后,你要基本上 弄清楚,如果它是一个句子或不 947 00:47:29,590 --> 00:47:31,131 并返回true或false相应。 948 00:47:31,131 --> 00:48:41,850 949 00:48:41,850 --> 00:48:45,200 >> 如果你们想给 竖起大拇指或抬起头来,点头, 950 00:48:45,200 --> 00:48:49,080 是任何人都已经准备好开始 这一点,那会是不错的。 951 00:48:49,080 --> 00:50:13,570 952 00:50:13,570 --> 00:50:15,200 也许就像30多秒? 953 00:50:15,200 --> 00:50:49,570 954 00:50:49,570 --> 00:50:50,070 好吧。 955 00:50:50,070 --> 00:50:52,870 让我们来看看,如果你可以试试 写这个功能。 956 00:50:52,870 --> 00:50:57,480 >> 所以,伪coding--我只是要 通过这个,现在那种走。 957 00:50:57,480 --> 00:51:00,570 好看多了,我们知道了 函数,我们需要使用。 958 00:51:00,570 --> 00:51:04,390 我们将调用该函数 我们的字符串和搜索一空。 959 00:51:04,390 --> 00:51:08,682 如果返回的东西,那么我们必须 知道这一点,显然,这是一个句子。 960 00:51:08,682 --> 00:51:09,640 因为有空间。 961 00:51:09,640 --> 00:51:10,930 然后,我们将返回true。 962 00:51:10,930 --> 00:51:12,310 否则,我们将返回false。 963 00:51:12,310 --> 00:51:14,393 没有人想给 我的第一行代码 964 00:51:14,393 --> 00:51:16,890 我们实际上是要 用写? 965 00:51:16,890 --> 00:51:19,680 它实际上是最难 代码行也是如此。 966 00:51:19,680 --> 00:51:21,026 是啊。 967 00:51:21,026 --> 00:51:28,942 >> 听众:如果strtok在S-- 968 00:51:28,942 --> 00:51:29,900 ANDI彭:就和strchr。 969 00:51:29,900 --> 00:51:35,354 听众:[插入VOICES] 空间不等于空。 970 00:51:35,354 --> 00:51:38,270 971 00:51:38,270 --> 00:51:40,710 >> ANDI彭:酷。 972 00:51:40,710 --> 00:51:41,470 非常正确。 973 00:51:41,470 --> 00:51:43,200 每个人都明白,第一行? 974 00:51:43,200 --> 00:51:46,110 我们要调用的strstr, 这是一个函数,搜索 975 00:51:46,110 --> 00:51:51,830 字符串s为空字符。 976 00:51:51,830 --> 00:51:56,010 而如果它发现它,它会 返回一个指向哪里是。 977 00:51:56,010 --> 00:51:58,500 >> 如果没有找到它, 它会返回NULL。 978 00:51:58,500 --> 00:52:02,530 所以,如果它返回任何东西比其他 NULL,那么我们就知道它找到了一个空间。 979 00:52:02,530 --> 00:52:03,553 那有意义吗? 980 00:52:03,553 --> 00:52:04,090 凉。 981 00:52:04,090 --> 00:52:04,590 好吧。 982 00:52:04,590 --> 00:52:08,246 因此,如果我们知道它的发现一个 空间,我们怎么想干什么? 983 00:52:08,246 --> 00:52:09,162 听众:返回true。 984 00:52:09,162 --> 00:52:09,787 ANDI彭:是的。 985 00:52:09,787 --> 00:52:11,940 返回true。 986 00:52:11,940 --> 00:52:15,034 然后,有人要 完成了功能给我吗? 987 00:52:15,034 --> 00:52:16,300 是啊。 988 00:52:16,300 --> 00:52:19,720 否则,就这样。 989 00:52:19,720 --> 00:52:20,780 而尝试编译这一点。 990 00:52:20,780 --> 00:52:26,071 991 00:52:26,071 --> 00:52:28,000 >> 对。 992 00:52:28,000 --> 00:52:33,099 所以当你们可以从看 输出,记得布尔用C 993 00:52:33,099 --> 00:52:34,390 总是表示二进制。 994 00:52:34,390 --> 00:52:35,100 1是真实的。 995 00:52:35,100 --> 00:52:36,350 0是假的。 996 00:52:36,350 --> 00:52:39,720 >> 如果我们运行这个 上串的一个,函数 997 00:52:39,720 --> 00:52:42,900 是嗨,我的名字的Andi-- 显然,一个sentence--结果 998 00:52:42,900 --> 00:52:45,700 打印输出为1,这是真的。 999 00:52:45,700 --> 00:52:48,420 第二个,这仅仅是 总之,结果打印出来 1000 00:52:48,420 --> 00:52:50,630 为0,这是假的。 1001 00:52:50,630 --> 00:52:54,820 每个人都清楚的那种对如何 这个函数写? 1002 00:52:54,820 --> 00:52:55,800 是啊。 1003 00:52:55,800 --> 00:52:59,770 >> 听众:可我们也做代替, 不等于没有,等于等于0, 1004 00:52:59,770 --> 00:53:03,677 因此,它是等于? 1005 00:53:03,677 --> 00:53:04,260 ANDI彭:没有。 1006 00:53:04,260 --> 00:53:07,480 因为和strchr是一个功能。 1007 00:53:07,480 --> 00:53:09,940 我要回本。 1008 00:53:09,940 --> 00:53:14,624 那么什么是返回类型 我们strchr函数? 1009 00:53:14,624 --> 00:53:15,332 听众:哦,好。 1010 00:53:15,332 --> 00:53:15,800 或者为null。 1011 00:53:15,800 --> 00:53:16,466 >> ANDI彭:是的。 1012 00:53:16,466 --> 00:53:20,890 这是一个char *,告诉我,无论 这个函数会返回, 1013 00:53:20,890 --> 00:53:22,090 这将是一个指针。 1014 00:53:22,090 --> 00:53:24,860 无论是指针将是 指着其中,它的发现是, 1015 00:53:24,860 --> 00:53:27,550 或者它会返回 一个指针为NULL。 1016 00:53:27,550 --> 00:53:30,930 在这两种情况下,这是怎么回事 返回的指针的东西。 1017 00:53:30,930 --> 00:53:34,354 >> 所以,如果你要画上等号 这等于,等于0, 1018 00:53:34,354 --> 00:53:36,020 你会得到一个编译错误。 1019 00:53:36,020 --> 00:53:37,645 因为它会返回一个指针。 1020 00:53:37,645 --> 00:53:40,240 而你要尝试 指针进行比较,以一个整数。 1021 00:53:40,240 --> 00:53:42,515 和计算机的不 会喜欢这一点。 1022 00:53:42,515 --> 00:53:45,630 是的,没错。 1023 00:53:45,630 --> 00:53:46,540 凉。 1024 00:53:46,540 --> 00:53:47,525 每个人都好? 1025 00:53:47,525 --> 00:53:55,770 1026 00:53:55,770 --> 00:53:59,770 >> 其次,我们将去 在一个函数调用的strstr。 1027 00:53:59,770 --> 00:54:02,020 不用担心,如果这些 功能混淆你。 1028 00:54:02,020 --> 00:54:03,750 他们混淆了我。 1029 00:54:03,750 --> 00:54:07,250 因此,你们可以看到, 他们所有的声音几乎相同。 1030 00:54:07,250 --> 00:54:10,400 只是当你感到困惑, 拉起string.h中图书馆。 1031 00:54:10,400 --> 00:54:13,290 而且你们可以排序 通过一个人的那个。 1032 00:54:13,290 --> 00:54:18,910 >> 所以的strstr,所有这些都搜索 一个字符串完全是另外一个字符串。 1033 00:54:18,910 --> 00:54:21,980 那么,和strchr只是搜索 为单个字符, 1034 00:54:21,980 --> 00:54:24,090 搜索的strstr为整个字符串。 1035 00:54:24,090 --> 00:54:30,440 所以我想看看的,我不 知道了,嗨,我的名字是安迪。 1036 00:54:30,440 --> 00:54:32,490 和我最好的朋友的名字也安迪。 1037 00:54:32,490 --> 00:54:37,180 >> 如果我想看看在这个 句子安迪的整个字, 1038 00:54:37,180 --> 00:54:39,930 我的针本来 你要寻找什么的。 1039 00:54:39,930 --> 00:54:43,440 而你的草垛是什么 你正在寻找入。 1040 00:54:43,440 --> 00:54:47,050 所以,如果你正在寻找一个 在句子中特定的词, 1041 00:54:47,050 --> 00:54:48,800 这个词将是你的针。 1042 00:54:48,800 --> 00:54:51,397 然后是句子本身 将是你的干草堆。 1043 00:54:51,397 --> 00:54:53,230 所以它只是搜索 第一次出现 1044 00:54:53,230 --> 00:54:55,063 串针 在字符串草垛。 1045 00:54:55,063 --> 00:54:57,140 它返回指针 在第一个出现。 1046 00:54:57,140 --> 00:55:00,510 除外,记住在这种情况下,它是 整个字符串的第一次出现 1047 00:55:00,510 --> 00:55:02,510 您正在搜索 为,不只是一个字符。 1048 00:55:02,510 --> 00:55:04,676 >> 所以,这几乎是 同样的事情功能 1049 00:55:04,676 --> 00:55:09,100 我们只是做了,只需用 多一点特异性。 1050 00:55:09,100 --> 00:55:12,730 因为你正在寻找 不是只有一个性格比较。 1051 00:55:12,730 --> 00:55:16,310 以及使用是完全相同 因为我们只是做了一个。 1052 00:55:16,310 --> 00:55:18,070 每个人都用这个好不好? 1053 00:55:18,070 --> 00:55:20,250 好。 1054 00:55:20,250 --> 00:55:23,560 >> 最后一个我们要去 以上是strrchr,这是不 1055 00:55:23,560 --> 00:55:26,320 混淆或的strstr与和strchr。 1056 00:55:26,320 --> 00:55:27,890 strrchr在有一个额外的河 1057 00:55:27,890 --> 00:55:29,140 要小心,当你打字。 1058 00:55:29,140 --> 00:55:33,851 你可能会发现自己包括 一个额外的R或不包括R, 1059 00:55:33,851 --> 00:55:35,850 然后你的函数 是得了行不通的。 1060 00:55:35,850 --> 00:55:37,183 而且你会感到困惑。 1061 00:55:37,183 --> 00:55:40,150 要小心,你拼写 所有这些功能的权利。 1062 00:55:40,150 --> 00:55:43,770 >> 所以strrchr是确切的 同样的事情,和strchr 1063 00:55:43,770 --> 00:55:47,480 但它会搜索不是第一次 发生特定的字符, 1064 00:55:47,480 --> 00:55:49,350 而最后出现的位置。 1065 00:55:49,350 --> 00:55:52,800 因此,在这个意义上, 它几乎是完全一样的。 1066 00:55:52,800 --> 00:55:54,620 但是,代替移动 转发在一个字符串, 1067 00:55:54,620 --> 00:55:57,230 你会被感动 向后的字符串。 1068 00:55:57,230 --> 00:56:00,510 同样的事情,你只是 搜索以不同的顺序。 1069 00:56:00,510 --> 00:56:04,690 >> 所以这可能是超好, 为您查找超好用 1070 00:56:04,690 --> 00:56:07,490 功能,第一 功能上的pset中。 1071 00:56:07,490 --> 00:56:12,710 让我们假设我们需要写一个 无效的扩展功能中,我们 1072 00:56:12,710 --> 00:56:17,850 通过一个恒定的char *文件名, 只是一个字符串,一个文件名, 1073 00:56:17,850 --> 00:56:21,370 这需要在该名称并打印 出该文件的扩展名。 1074 00:56:21,370 --> 00:56:26,520 因此,举例来说,如果我 通过pset7.zip的字符串中, 1075 00:56:26,520 --> 00:56:30,004 它会打印出刚 延伸,这是.ZIP。 1076 00:56:30,004 --> 00:56:31,920 而这种将工作 任何一种延伸, 1077 00:56:31,920 --> 00:56:38,290 .DOCX的Word或.pdf格式为PDF 文件或.html的HTML文件。 1078 00:56:38,290 --> 00:56:40,425 好看多了,写 功能,可以做到这一点。 1079 00:56:40,425 --> 00:56:42,300 实际上,我要 切换到IDE中。 1080 00:56:42,300 --> 00:56:54,560 1081 00:56:54,560 --> 00:56:56,740 它不是load--我们走吧。 1082 00:56:56,740 --> 00:57:00,990 >> 因此,所有我所做的是 创建一个char *,第一串, 1083 00:57:00,990 --> 00:57:01,930 所谓pset7.zip。 1084 00:57:01,930 --> 00:57:04,530 我要去进行放大。 1085 00:57:04,530 --> 00:57:08,520 我创建了一个第二个字符串 所谓finalpaper.docx。 1086 00:57:08,520 --> 00:57:12,649 而给我写一个函数,当 所谓打算只是打印出来 1087 00:57:12,649 --> 00:57:13,690 文件扩展名。 1088 00:57:13,690 --> 00:57:16,702 1089 00:57:16,702 --> 00:57:19,660 也许需要几分钟时间思考 如何你要做到这一点。 1090 00:57:19,660 --> 00:57:22,510 稍微更具挑战性 比最后一个, 1091 00:57:22,510 --> 00:57:24,770 但用法差不多 一模一样。 1092 00:57:24,770 --> 00:57:29,670 1093 00:57:29,670 --> 00:57:30,170 是啊。 1094 00:57:30,170 --> 00:57:37,540 所以写一个函数调用扩展 即,如果我给的文件,你的名字, 1095 00:57:37,540 --> 00:57:41,340 如果我给你pset7.zip--我 希望你能打印出刚刚的.zip。 1096 00:57:41,340 --> 00:57:45,040 1097 00:57:45,040 --> 00:57:49,890 如果我给你喜欢finalpaper.docx, 刚打印出的.docx, 1098 00:57:49,890 --> 00:57:51,538 任何文件的只是扩展。 1099 00:57:51,538 --> 00:59:03,720 1100 00:59:03,720 --> 00:59:07,790 >> 这实际上只 采用两行代码。 1101 00:59:07,790 --> 00:59:10,692 因此,尝试,如果你看 也许可以做到这一点在这一点。 1102 00:59:10,692 --> 00:59:12,400 实际上,它只 需要一行代码。 1103 00:59:12,400 --> 00:59:14,074 但两行可能是更标准。 1104 00:59:14,074 --> 00:59:20,408 1105 00:59:20,408 --> 00:59:22,574 什么功能是我们可能 会想打电话? 1106 00:59:22,574 --> 00:59:25,286 1107 00:59:25,286 --> 00:59:26,260 >> 听众:strrchr。 1108 00:59:26,260 --> 00:59:27,343 >> ANDI彭:strrchr吧。 1109 00:59:27,343 --> 00:59:29,570 因为我们正在寻找 从右边左边。 1110 00:59:29,570 --> 00:59:32,107 1111 00:59:32,107 --> 00:59:33,940 我没有给你们 像这样的一个例子, 1112 00:59:33,940 --> 00:59:38,870 但如果我给你的一个示例 www.apple.com,我只是想 1113 00:59:38,870 --> 00:59:43,005 。com的,它会是其中的例子 你要拨打的最后一个实例 1114 00:59:43,005 --> 00:59:44,630 这一时期,而不是​​第一个,对不对? 1115 00:59:44,630 --> 00:59:47,470 如果你是电话和strchr,它 就已经给你的apple.com。 1116 00:59:47,470 --> 00:59:49,966 >> 如果你叫strrchr,它 会给你的.COM。 1117 00:59:49,966 --> 00:59:53,062 所以要小心哪些 ways--在我的例子, 1118 00:59:53,062 --> 00:59:55,520 你很可能可以有 只是写它用,和strchr, 1119 00:59:55,520 --> 00:59:57,130 因为只有一个点。 1120 00:59:57,130 --> 00:59:59,790 但在另一些情况下, 这可能不是这样的。 1121 00:59:59,790 --> 01:00:04,960 所以总是试图设计 您的代码很好,所以that--是吗? 1122 01:00:04,960 --> 01:00:07,365 >> 听众:所以在 比如你刚才说的, 1123 01:00:07,365 --> 01:00:11,760 当你strrchr它会 给你.com或只是来? 1124 01:00:11,760 --> 01:00:13,960 >> ANDI彭:这会给你的.COM。 1125 01:00:13,960 --> 01:00:14,794 >> 听众:OK。 1126 01:00:14,794 --> 01:00:15,460 ANDI彭:是的。 1127 01:00:15,460 --> 01:00:18,090 1128 01:00:18,090 --> 01:00:19,744 它指出,它发现它。 1129 01:00:19,744 --> 01:00:20,244 是啊。 1130 01:00:20,244 --> 01:00:24,120 1131 01:00:24,120 --> 01:00:25,188 30秒可能? 1132 01:00:25,188 --> 01:00:25,688 是啊。 1133 01:00:25,688 --> 01:00:56,640 1134 01:00:56,640 --> 01:00:58,500 大家好或者多一点的时间? 1135 01:00:58,500 --> 01:01:01,057 1136 01:01:01,057 --> 01:01:01,640 举手? 1137 01:01:01,640 --> 01:01:02,320 展会负责人? 1138 01:01:02,320 --> 01:01:04,801 1139 01:01:04,801 --> 01:01:05,300 凉。 1140 01:01:05,300 --> 01:01:07,924 任何人想给我的第一 行代码对这一计划? 1141 01:01:07,924 --> 01:01:11,861 1142 01:01:11,861 --> 01:01:12,777 听众:[听不清]。 1143 01:01:12,777 --> 01:01:16,190 1144 01:01:16,190 --> 01:01:20,160 >> ANDI彭:所以首先, 我们也许打破这种下来。 1145 01:01:20,160 --> 01:01:24,370 那么,什么是strrchr的返回类型? 1146 01:01:24,370 --> 01:01:26,150 我们回去吧。 1147 01:01:26,150 --> 01:01:29,015 strrchr,什么是返回类型? 1148 01:01:29,015 --> 01:01:29,640 听众:字符* 1149 01:01:29,640 --> 01:01:31,270 ANDI彭:这是一个char *,对不对? 1150 01:01:31,270 --> 01:01:35,760 这意味着,你可能会 想创建另一个字符*来样 1151 01:01:35,760 --> 01:01:40,400 商店时,它的 返回到,对不对? 1152 01:01:40,400 --> 01:01:43,200 因为如果你打电话 该函数strrchr, 1153 01:01:43,200 --> 01:01:47,030 它会给你一个指针 只要它发现最后一期, 1154 01:01:47,030 --> 01:01:47,580 对? 1155 01:01:47,580 --> 01:01:49,913 >> 不过,你会想 存储在某个地方,对不对? 1156 01:01:49,913 --> 01:01:52,612 所以,我们如何代码 这为我们的计划? 1157 01:01:52,612 --> 01:01:54,320 听众:你让 焦炭* [听不清]。 1158 01:01:54,320 --> 01:01:55,240 ANDI彭:是的。 1159 01:01:55,240 --> 01:01:57,120 听众:[听不清]。 1160 01:01:57,120 --> 01:01:58,000 ANDI彭:strrchr。 1161 01:01:58,000 --> 01:01:58,390 是啊。 1162 01:01:58,390 --> 01:01:59,306 哦,错过了的R那里。 1163 01:01:59,306 --> 01:02:02,877 听众:文件名[听不清]。 1164 01:02:02,877 --> 01:02:03,376 它是什么? 1165 01:02:03,376 --> 01:02:04,420 呵呵,这只是秒。 1166 01:02:04,420 --> 01:02:04,940 >> ANDI彭:哦,这只是秒。 1167 01:02:04,940 --> 01:02:05,610 是啊,对不起。 1168 01:02:05,610 --> 01:02:06,330 我的错。 1169 01:02:06,330 --> 01:02:08,370 实例不匹配。 1170 01:02:08,370 --> 01:02:12,130 >> 听众:然后点。 1171 01:02:12,130 --> 01:02:13,970 >> ANDI彭:是的。 1172 01:02:13,970 --> 01:02:16,570 要小心,你当人 are--在这里,让我进行放大。 1173 01:02:16,570 --> 01:02:22,355 1174 01:02:22,355 --> 01:02:24,400 在那里,我们走了。 1175 01:02:24,400 --> 01:02:26,770 要小心,你当人 在打字,特别是当 1176 01:02:26,770 --> 01:02:27,920 你正在做的只是一个字符。 1177 01:02:27,920 --> 01:02:32,480 这真的很容易不小心正好 做双引号,而不是单一的。 1178 01:02:32,480 --> 01:02:35,212 >> 这是行不通的。 1179 01:02:35,212 --> 01:02:36,670 你的编译器会抱怨。 1180 01:02:36,670 --> 01:02:38,790 而你的函数是 只是不会运行。 1181 01:02:38,790 --> 01:02:40,540 所以要小心,当 你正在做的事情 1182 01:02:40,540 --> 01:02:42,622 用字符,它的单引号。 1183 01:02:42,622 --> 01:02:44,830 所以做这一行的 代码有意义给大家? 1184 01:02:44,830 --> 01:02:46,810 我们正在创造一个char *指针。 1185 01:02:46,810 --> 01:02:50,310 因为strrchr返回 什么类型的指针。 1186 01:02:50,310 --> 01:02:53,440 >> 所以,我们要打电话和strchr 关于s,这是字符串,文件 1187 01:02:53,440 --> 01:02:55,140 名,我们传递研究。 1188 01:02:55,140 --> 01:02:59,750 我们正在寻找的最后 的期间,这是实例 1189 01:02:59,750 --> 01:03:02,200 只是单引号点单引号。 1190 01:03:02,200 --> 01:03:02,700 是啊。 1191 01:03:02,700 --> 01:03:05,180 >> 听众:我们什么时候使用双引号 当我们使用单引号? 1192 01:03:05,180 --> 01:03:05,320 >> ANDI彭:是的。 1193 01:03:05,320 --> 01:03:07,180 因此,双引号 总是用,当你 1194 01:03:07,180 --> 01:03:10,120 有不止一个的字符串。 1195 01:03:10,120 --> 01:03:13,070 所以,如果你正在做的strstr, 这是一个你 1196 01:03:13,070 --> 01:03:16,320 搜索字符串,字符串, 将通过它在双引号。 1197 01:03:16,320 --> 01:03:18,070 但是,任何时候它只是 单个字符, 1198 01:03:18,070 --> 01:03:19,870 你想要做的单引号。 1199 01:03:19,870 --> 01:03:22,880 >> 这是一个很好的事情要记住。 1200 01:03:22,880 --> 01:03:25,864 所以,现在,我们有我们 指针,我们用它做什么? 1201 01:03:25,864 --> 01:03:27,780 我问你们来 打印出来,对不对? 1202 01:03:27,780 --> 01:03:30,940 所以[听不清],你要 给我的代码行? 1203 01:03:30,940 --> 01:03:31,780 >> 听众:printf-- 1204 01:03:31,780 --> 01:03:32,446 >> ANDI彭:是的。 1205 01:03:32,446 --> 01:03:35,344 1206 01:03:35,344 --> 01:03:36,843 听众:--you需要一个占位符。 1207 01:03:36,843 --> 01:03:37,340 ANDI彭:是的。 1208 01:03:37,340 --> 01:03:38,334 听众:打印的占位符。 1209 01:03:38,334 --> 01:03:40,322 我不知道是什么地方 持有人而是指向它。 1210 01:03:40,322 --> 01:03:40,819 >> 好。 1211 01:03:40,819 --> 01:03:42,027 让我们跳过现在即可。 1212 01:03:42,027 --> 01:03:44,556 听众:然后comma-- 1213 01:03:44,556 --> 01:03:45,720 >> ANDI彭:指针,对不对? 1214 01:03:45,720 --> 01:03:47,970 >> 听众:指针,烨。 1215 01:03:47,970 --> 01:03:51,140 >> ANDI彭:一种因此,一个脑筋急转弯, 有做的指针和字符串 1216 01:03:51,140 --> 01:03:53,130 样的,我们已经谈过了。 1217 01:03:53,130 --> 01:03:57,766 什么样占位做我们 需要一个指针一个char *? 1218 01:03:57,766 --> 01:03:59,574 >> 听众:[听不清]。 1219 01:03:59,574 --> 01:04:00,240 ANDI彭:是的。 1220 01:04:00,240 --> 01:04:02,522 它更容易比你们觉得是。 1221 01:04:02,522 --> 01:04:03,230 听众:字符串? 1222 01:04:03,230 --> 01:04:04,730 ANDI彭:这只是一个字符串,没错。 1223 01:04:04,730 --> 01:04:06,595 因为记得字符串 真的不存在。 1224 01:04:06,595 --> 01:04:09,430 一个char *是完全相同 同样的事情,作为一个字符串。 1225 01:04:09,430 --> 01:04:14,461 所以实际上这s是什么 本来应该使用的所有沿。 1226 01:04:14,461 --> 01:04:14,960 好。 1227 01:04:14,960 --> 01:04:17,810 >> 让我们来看看,如果我们可以尝试运行这一点。 1228 01:04:17,810 --> 01:04:19,450 让我们做一个化妆的扩展。 1229 01:04:19,450 --> 01:04:22,710 1230 01:04:22,710 --> 01:04:23,396 凉。 1231 01:04:23,396 --> 01:04:28,830 你们看我是如何传递的 psset7.zip和finalpaper.docx, 1232 01:04:28,830 --> 01:04:32,500 它只是打印出 该.zip和.DOCX? 1233 01:04:32,500 --> 01:04:34,150 合理? 1234 01:04:34,150 --> 01:04:36,660 >> 好了,所以我觉得在你的样子了 在你的pset你功能 1235 01:04:36,660 --> 01:04:41,050 要如果要问 字符串有一定的结局, 1236 01:04:41,050 --> 01:04:42,800 你必须给予一定的错误代码。 1237 01:04:42,800 --> 01:04:44,820 所以这将是很可怕。 1238 01:04:44,820 --> 01:04:47,350 因为如果你自己看着办 出来的扩展名是什么, 1239 01:04:47,350 --> 01:04:49,810 那么你可以比较 延伸,看它是否相匹配 1240 01:04:49,810 --> 01:04:51,251 具有一定的扩展。 1241 01:04:51,251 --> 01:04:53,250 然后你就可以返回 错误信息,对不对? 1242 01:04:53,250 --> 01:04:53,860 是啊。 1243 01:04:53,860 --> 01:04:55,370 >> 听众:所以我们不 要加1或什么? 1244 01:04:55,370 --> 01:04:56,530 指针会去the-- 1245 01:04:56,530 --> 01:04:56,660 >> ANDI彭:没。 1246 01:04:56,660 --> 01:04:57,530 >> 听众:后--point。 1247 01:04:57,530 --> 01:04:58,196 >> ANDI彭:是的。 1248 01:04:58,196 --> 01:05:00,650 它指向精确地 在那里发生了。 1249 01:05:00,650 --> 01:05:04,010 因此,例如在这里,我们 搜索的周期。 1250 01:05:04,010 --> 01:05:06,597 因此,它会返回 的指针的期间。 1251 01:05:06,597 --> 01:05:08,930 然后它会打印 出开始时的期间。 1252 01:05:08,930 --> 01:05:10,260 >> 所以,你不需要加1。 1253 01:05:10,260 --> 01:05:15,000 虽然,这是完全罚款,如果 你拿不准,只是那种 1254 01:05:15,000 --> 01:05:16,070 中测试一下自己。 1255 01:05:16,070 --> 01:05:17,590 构建一个示例程序。 1256 01:05:17,590 --> 01:05:20,240 测试一下自己, 看到它的打印。 1257 01:05:20,240 --> 01:05:23,380 这也是一个不错的方式来做到这一点。 1258 01:05:23,380 --> 01:05:26,040 >> 凉。 1259 01:05:26,040 --> 01:05:28,880 而这几乎是所有 今天我为你们。 1260 01:05:28,880 --> 01:05:31,440 1261 01:05:31,440 --> 01:05:33,300 今天我们做了很多的PSET的东西。 1262 01:05:33,300 --> 01:05:35,720 所以,当有疑问,像 我说,永远仰视 1263 01:05:35,720 --> 01:05:37,620 该文件string.h库这个pset中。 1264 01:05:37,620 --> 01:05:40,370 还有的将是一个很大的 在那里,函数可能是有用的。 1265 01:05:40,370 --> 01:05:41,300 有些人可能没有用处。 1266 01:05:41,300 --> 01:05:42,133 我真的不知道。 1267 01:05:42,133 --> 01:05:44,370 韦德通过它,有 一大堆人。 1268 01:05:44,370 --> 01:05:49,100 的strstr,和strchr,strrchr是 超好,乐于助人,以及 1269 01:05:49,100 --> 01:05:52,080 在strcpys和strcasecmps 我们已经使用。 1270 01:05:52,080 --> 01:05:56,510 >> 这是瞎搞用的只是很多 串,确定他们是平等的, 1271 01:05:56,510 --> 01:05:59,960 得到的东西出字符串,并 能够正确打开文件。 1272 01:05:59,960 --> 01:06:02,252 这是一个很大的文件I / O。 PSET真的不是那么糟糕。 1273 01:06:02,252 --> 01:06:04,210 你会采取 看着它,下载它, 1274 01:06:04,210 --> 01:06:05,590 看到一大堆的代码。 1275 01:06:05,590 --> 01:06:09,220 不用担心,你的代码 其实写的是不差。 1276 01:06:09,220 --> 01:06:12,870 如果任何人有问题的 服务器,来看看我的后段。 1277 01:06:12,870 --> 01:06:16,040 >> 再一次道歉不 把糖果万圣节。 1278 01:06:16,040 --> 01:06:18,790 我不知道什么是我错了。 1279 01:06:18,790 --> 01:06:20,800 但是,我们将有双​​重 糖果下一次。 1280 01:06:20,800 --> 01:06:25,620 本周在你的pset和好运。 1281 01:06:25,620 --> 01:06:27,170 对。 1282 01:06:27,170 --> 01:06:28,722