1 00:00:00,000 --> 00:00:05,410 2 00:00:05,410 --> 00:00:08,770 >> ANDI Peng: Estamos quase através de todas as Série de Exercícios. 3 00:00:08,770 --> 00:00:12,080 Na verdade, nós terminamos a maioria Série de Exercícios dos mais difíceis. 4 00:00:12,080 --> 00:00:14,350 Então, nós estamos realmente apenas vai espécie de brisa 5 00:00:14,350 --> 00:00:16,050 através do próximo par de semanas. 6 00:00:16,050 --> 00:00:19,520 >> Nós vamos começar a falar sobre a nossa projetos finais, os eventos que acontecerão em 7 00:00:19,520 --> 00:00:21,320 nas próximas semanas. 8 00:00:21,320 --> 00:00:23,825 E a vida será uma brisa. 9 00:00:23,825 --> 00:00:26,510 10 00:00:26,510 --> 00:00:27,680 Então, não muito hoje. 11 00:00:27,680 --> 00:00:30,280 >> Esperemos que vai realmente brisa através da agenda para hoje, 12 00:00:30,280 --> 00:00:33,400 e, em seguida, sair daqui com algum tempo de sobra. 13 00:00:33,400 --> 00:00:36,210 Além disso, eu quero pedir desculpas para a falta de doces hoje. 14 00:00:36,210 --> 00:00:37,030 Eu não sei por quê. 15 00:00:37,030 --> 00:00:40,520 Mas na semana que antecedeu Halloween, eu iria esquecer de doces. 16 00:00:40,520 --> 00:00:43,290 >> Então, eu estou realmente apenas um vasto decepção para você agora. 17 00:00:43,290 --> 00:00:47,050 Porque eu literalmente me lembro de doces para cada classe, mas o Dia das Bruxas. 18 00:00:47,050 --> 00:00:49,345 Mas na próxima semana, eu trarei dobrar a quantidade de doces 19 00:00:49,345 --> 00:00:50,720 para compensar isso, tudo para você. 20 00:00:50,720 --> 00:00:53,260 Vai ser ótimo. 21 00:00:53,260 --> 00:00:56,690 >> Então, eu tenho um par de anúncios em relação a algumas agendamento. 22 00:00:56,690 --> 00:00:59,520 Eu tenho alguns problemas de agendamento. 23 00:00:59,520 --> 00:01:02,150 Em seguida, vamos passar para falar sobre o que é chamado chmod. 24 00:01:02,150 --> 00:01:05,980 Nós vamos falar sobre rapidamente de TCP / IP HTTP. 25 00:01:05,980 --> 00:01:09,770 >> E então nós estamos indo para codificar nossa próprio site usando HTML e CSS. 26 00:01:09,770 --> 00:01:13,030 E então eu vou realmente deixar talvez como 20 minutos para falar sobre pset6. 27 00:01:13,030 --> 00:01:16,550 Porque pset6 é realmente um monte de coisas que já vimos antes, 28 00:01:16,550 --> 00:01:19,090 mas eu queria para refrescar alguns desses conceitos 29 00:01:19,090 --> 00:01:22,140 bem como ensinar um par de novas funções. 30 00:01:22,140 --> 00:01:23,110 >> Legal. 31 00:01:23,110 --> 00:01:25,440 Então, em primeiro lugar, bem-vindo de volta do intervalo. 32 00:01:25,440 --> 00:01:27,410 Espero que você esteja break foi agradável. 33 00:01:27,410 --> 00:01:29,695 Será que você fez para a ruptura? 34 00:01:29,695 --> 00:01:30,820 AUDIÊNCIA: Fui para Nova York. 35 00:01:30,820 --> 00:01:32,030 ANDI Peng: Você foi para Nova York? 36 00:01:32,030 --> 00:01:33,738 Acho que metade da nossa escola foi para Nova York. 37 00:01:33,738 --> 00:01:34,740 Está tudo bem. 38 00:01:34,740 --> 00:01:38,250 Passei a maior parte da minha pausa sedentário na cama Netflixing. 39 00:01:38,250 --> 00:01:39,760 E foi um bom tempo. 40 00:01:39,760 --> 00:01:43,450 >> Mas agora estamos de volta, de volta sessão, de volta ao balanço das coisas. 41 00:01:43,450 --> 00:01:47,900 Temos um pset devido esta sexta-feira ao meio-dia. 42 00:01:47,900 --> 00:01:50,240 >> Eu acho que você já pegou o seu questionário, sim? 43 00:01:50,240 --> 00:01:52,140 Assim, qualquer pessoa que tem não tiveram seus questionários, 44 00:01:52,140 --> 00:01:55,416 por favor, venha e pegue seus quizzes a partir de me no fim da secção. 45 00:01:55,416 --> 00:01:56,540 Ou me derrubar no campus. 46 00:01:56,540 --> 00:01:59,310 Vou tê-lo comigo em algum lugar. 47 00:01:59,310 --> 00:02:02,120 >> Nosso projeto final pré-proposta também. 48 00:02:02,120 --> 00:02:06,380 Portanto, para aqueles de nós que nunca tomaram esta classe antes, a pedra angular da CS50 49 00:02:06,380 --> 00:02:11,150 é muito culminou neste grande projeto que os alunos propõem. 50 00:02:11,150 --> 00:02:14,300 E a pré-proposta, apenas uma idéia geral 51 00:02:14,300 --> 00:02:18,500 do que se pode querer fazer para a sua projeto, essa idéia é devido segunda-feira, 52 00:02:18,500 --> 00:02:20,780 próxima segunda-feira ao meio-dia. 53 00:02:20,780 --> 00:02:23,800 >> Então, basicamente, eu acho que vai David falar mais sobre isso na palestra 54 00:02:23,800 --> 00:02:25,390 se ele não tem já. 55 00:02:25,390 --> 00:02:28,710 E há uma página sólido em nosso site explicando 56 00:02:28,710 --> 00:02:31,610 todos os requisitos do projeto. 57 00:02:31,610 --> 00:02:34,082 Mas, essencialmente, escolher qualquer assunto que você tem 58 00:02:34,082 --> 00:02:35,915 se interessado em durante todo o tempo aqui 59 00:02:35,915 --> 00:02:41,760 no CS, quer se trate de jogos ou desenho ou vídeo ou qualquer coisa. 60 00:02:41,760 --> 00:02:44,920 >> E você pode realmente tipo de agora aplicar algumas das lições 61 00:02:44,920 --> 00:02:52,470 que aprendemos aqui em CS50-- oi, welcome-- a praticamente condução 62 00:02:52,470 --> 00:02:56,320 um projeto final de sua escolha. 63 00:02:56,320 --> 00:02:59,570 Tudo o que é devido segunda-feira é apenas uma breve sinopse via e-mail 64 00:02:59,570 --> 00:03:02,010 para mim, uma sentença rápida, como, hey, Andi, 65 00:03:02,010 --> 00:03:06,490 Eu estou realmente interessado em projetar um jogo que faz isso para iOS. 66 00:03:06,490 --> 00:03:07,420 Legal. 67 00:03:07,420 --> 00:03:10,767 Apenas deixe-me seu breve inicial idéias para seus projetos finais. 68 00:03:10,767 --> 00:03:13,850 E vamos falar através ou não que é realmente uma boa idéia ou não, 69 00:03:13,850 --> 00:03:15,590 se é uma idéia viável ou não. 70 00:03:15,590 --> 00:03:20,760 Mas apenas o pré-proposta é devido na próxima segunda-feira. 71 00:03:20,760 --> 00:03:24,190 pset6, a nossa linda web-- que está errado. 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, certo? 75 00:03:26,680 --> 00:03:32,690 >> pset6, o nosso servidor web, deve- Sexta-feira ao meio-dia com o dia de atraso. 76 00:03:32,690 --> 00:03:37,660 Horário de atendimento retomar normalmente de segunda-feira a quinta-feira de 8:00-11:00 esta semana. 77 00:03:37,660 --> 00:03:39,710 Eu acho que para Commons os próximos três noites. 78 00:03:39,710 --> 00:03:40,310 Legal. 79 00:03:40,310 --> 00:03:44,260 Antes tínhamos em material, faz qualquer um tiver quaisquer perguntas, piadas, histórias? 80 00:03:44,260 --> 00:03:46,662 O que você fez para quebrar a queda? 81 00:03:46,662 --> 00:03:48,640 >> AUDIÊNCIA: O que eu faço? 82 00:03:48,640 --> 00:03:52,834 >> ANDI Peng: Já é há muito tempo, na verdade. 83 00:03:52,834 --> 00:03:54,000 Christabel foi para Nova York. 84 00:03:54,000 --> 00:03:55,614 Eu fiquei aqui e Netflixed. 85 00:03:55,614 --> 00:03:56,864 AUDIÊNCIA: Ah, sim, eu estava aqui. 86 00:03:56,864 --> 00:03:57,614 ANDI Peng: Oh, OK. 87 00:03:57,614 --> 00:03:59,792 AUDIÊNCIA: Eu não me lembro o que especificamente. 88 00:03:59,792 --> 00:04:00,710 ANDI Peng: Isso é OK. 89 00:04:00,710 --> 00:04:01,960 AUDIÊNCIA: Netflixing provavelmente. 90 00:04:01,960 --> 00:04:02,990 ANDI Peng: Netflixing. 91 00:04:02,990 --> 00:04:04,710 Sim, é uma boa hora. 92 00:04:04,710 --> 00:04:05,780 ESTÁ BEM. 93 00:04:05,780 --> 00:04:06,340 Tudo certo. 94 00:04:06,340 --> 00:04:08,877 Quaisquer perguntas antes saltar para material? 95 00:04:08,877 --> 00:04:11,210 Além disso, nós estamos indo para tentar acelerar a seção de hoje, 96 00:04:11,210 --> 00:04:12,504 não muito para cobrir. 97 00:04:12,504 --> 00:04:14,420 E, esperamos, nós vamos chegar aqui fora um pouco mais cedo. 98 00:04:14,420 --> 00:04:15,580 Desculpe por não doces, também. 99 00:04:15,580 --> 00:04:20,310 Eu sou uma decepção, especialmente durante o Dia das Bruxas. 100 00:04:20,310 --> 00:04:21,110 >> Tudo certo. 101 00:04:21,110 --> 00:04:21,810 Legal. 102 00:04:21,810 --> 00:04:28,370 Então, vamos começar a falar sobre um argumento de linha de comando chamada chmod. 103 00:04:28,370 --> 00:04:32,850 chmod, tudo isso é apenas um sistema Unix chamada feita a partir da linha de comando 104 00:04:32,850 --> 00:04:34,700 para alterar as permissões de arquivo. 105 00:04:34,700 --> 00:04:37,790 Assim, por exemplo, nós temos tudo encontrou uma página 106 00:04:37,790 --> 00:04:40,550 como este, provavelmente, em algum momento nosso tempo de vida de ser um internet 107 00:04:40,550 --> 00:04:45,110 usuário, onde o nosso servidor web tem nos deu o erro de Proibida. 108 00:04:45,110 --> 00:04:49,086 Você não tem permissão para acessar, yadda, yadda, yadda, neste servidor. 109 00:04:49,086 --> 00:04:50,960 Tudo o que realmente significa é que as permissões 110 00:04:50,960 --> 00:04:53,920 que foram ligados a qualquer que seja página que você estava tentando acessar 111 00:04:53,920 --> 00:04:55,840 não estavam abertas para você. 112 00:04:55,840 --> 00:04:57,870 Então, basicamente, chmod é a maneira em que 113 00:04:57,870 --> 00:05:02,140 podemos modificar essas permissões de sistema para dar a todos, o usuário, o grupo, 114 00:05:02,140 --> 00:05:04,975 ou o mundo, ou qualquer combinação daqueles acesso 115 00:05:04,975 --> 00:05:07,900 a determinados arquivos, diretórios, nada realmente, 116 00:05:07,900 --> 00:05:11,720 qualquer tipo de sistema em um sistema operativo. 117 00:05:11,720 --> 00:05:14,039 Portanto, se qualquer um dos caras têm computadores, se você sente 118 00:05:14,039 --> 00:05:17,080 como seguir junto comigo hoje, totalmente à vontade para basta digitar coisas 119 00:05:17,080 --> 00:05:17,580 dentro. 120 00:05:17,580 --> 00:05:19,790 Se não, você pode simplesmente sair. 121 00:05:19,790 --> 00:05:23,170 Então, eu estou indo para realmente puxar o meu terminal de agora. 122 00:05:23,170 --> 00:05:29,810 123 00:05:29,810 --> 00:05:32,310 >> Assim, o comando para executar chmod, ou pelo menos apenas 124 00:05:32,310 --> 00:05:37,840 para listar as permissões da sua diretório de arquivos, é apenas ls-l. 125 00:05:37,840 --> 00:05:42,270 Como você pode ver, um grupo de material aparece a maioria dos quais 126 00:05:42,270 --> 00:05:45,390 é importante para nós em o lado esquerdo aqui. 127 00:05:45,390 --> 00:05:48,710 Vocês ver um monte de rs, ws, 1 /. 128 00:05:48,710 --> 00:05:49,210 Sim. 129 00:05:49,210 --> 00:05:51,400 >> Essas são essencialmente apenas todas as permissões de arquivo 130 00:05:51,400 --> 00:05:55,960 para explicar o que alguns diretórios e arquivos dentro de seu sistema tem. 131 00:05:55,960 --> 00:05:58,150 Então vamos voltar para a ponto de poder aqui. 132 00:05:58,150 --> 00:06:02,450 133 00:06:02,450 --> 00:06:06,500 Assim, para além dos nomes dos ficheiros como vocês podem ver à direita, 134 00:06:06,500 --> 00:06:10,312 nós estamos olhando para ver, essencialmente, apenas a coluna do lado esquerdo. 135 00:06:10,312 --> 00:06:12,020 Assim, além de apenas os nomes dos arquivos, nós 136 00:06:12,020 --> 00:06:16,240 pode ver as permissões de arquivos, a sua grupo proprietário, o nome do grupo, a data 137 00:06:16,240 --> 00:06:18,460 que o arquivo foi modificada, et cetera. 138 00:06:18,460 --> 00:06:20,640 Você pode ver um monte de coisas usando chmod. 139 00:06:20,640 --> 00:06:26,037 Assim, a maneira que lemos é que chmod a primeira letra que praticamente ignorar 140 00:06:26,037 --> 00:06:27,370 em termos de permissões de leitura. 141 00:06:27,370 --> 00:06:31,460 >> A primeira letra apenas nos diz o que tipo de sistema que está acessando. 142 00:06:31,460 --> 00:06:34,240 d, neste caso, é um pasta ou diretório. 143 00:06:34,240 --> 00:06:38,430 Então, nós sabemos que atualmente o meu espaço de trabalho seção sete era um diretório. 144 00:06:38,430 --> 00:06:41,530 E então você vê três tríades, essencialmente apenas 145 00:06:41,530 --> 00:06:43,490 três conjuntos de três personagens. 146 00:06:43,490 --> 00:06:45,680 E você pode pensar de cada um como um pouco. 147 00:06:45,680 --> 00:06:49,260 >> Então você só tem três conjuntos de três bits, nove pedaços no total. 148 00:06:49,260 --> 00:06:51,420 Você tratá-los em grupos de três. 149 00:06:51,420 --> 00:06:56,230 Assim, o primeiro grupo de três é sempre suas permissões de usuário. 150 00:06:56,230 --> 00:07:00,557 >> Seu segundo grupo de três é sempre suas permissões de grupo. 151 00:07:00,557 --> 00:07:02,765 E o seu terceiro conjunto de três é sempre como o mundo, 152 00:07:02,765 --> 00:07:04,380 as permissões em todos os lugares. 153 00:07:04,380 --> 00:07:06,320 Então eu acho que o fácil pergunta a fazer é o que é 154 00:07:06,320 --> 00:07:08,051 a diferença entre o usuário eo grupo. 155 00:07:08,051 --> 00:07:09,800 A principal diferença entre o usuário eo grupo 156 00:07:09,800 --> 00:07:13,180 é que um usuário é apenas você, pessoalmente, acesso a tudo o que é agora. 157 00:07:13,180 --> 00:07:18,070 Um grupo pode ser se você tiver múltiplo os usuários em um computador, por exemplo. 158 00:07:18,070 --> 00:07:20,280 Todos eles podem ser considerados como um grupo. 159 00:07:20,280 --> 00:07:23,220 >> E então o mundo é apenas o mundo, todo mundo. 160 00:07:23,220 --> 00:07:31,010 Assim, podemos ver, mais tarde, como podemos modificar aqueles em permissões diferentes. 161 00:07:31,010 --> 00:07:33,080 Então, basicamente, estamos vai ainda centrar 162 00:07:33,080 --> 00:07:38,450 na parte do lado esquerdo, onde para o diretório CS50 vemos drwx, 163 00:07:38,450 --> 00:07:40,970 onde o r apenas significa que é legível. 164 00:07:40,970 --> 00:07:42,620 >> O w apenas significa que é gravável. 165 00:07:42,620 --> 00:07:45,470 E então o x apenas significa que é executável. 166 00:07:45,470 --> 00:07:47,220 Você pensaria que tipo de que não faz sentido. 167 00:07:47,220 --> 00:07:47,993 Deve ser e. 168 00:07:47,993 --> 00:07:50,150 Mas x realmente tipo de funciona um pouco melhor, 169 00:07:50,150 --> 00:07:51,690 porque você pode se lembrar melhor. 170 00:07:51,690 --> 00:07:56,406 >> Assim, os três tipos de coisas que você pode fazer, você pode ler um arquivo, 171 00:07:56,406 --> 00:07:59,280 você pode ter permissão para gravar uma arquivo, ou você poderia ter permissão 172 00:07:59,280 --> 00:08:00,780 para executar um arquivo. 173 00:08:00,780 --> 00:08:04,580 E assim, a maneira que nós, na verdade, representam aqueles em bits 174 00:08:04,580 --> 00:08:06,940 é os números 4, 2 e 1. 175 00:08:06,940 --> 00:08:12,870 Então, qualquer coisa que seja legível é representado pelo número de quatro. 176 00:08:12,870 --> 00:08:15,150 >> Tudo o que é gravável é representado por 2. 177 00:08:15,150 --> 00:08:18,880 E qualquer coisa que seja executável como representado por 1. 178 00:08:18,880 --> 00:08:22,860 Portanto, nesse sentido, nós também podemos Números de representar esses 179 00:08:22,860 --> 00:08:25,281 oi, bem-vindo, de uma maneira diferente. 180 00:08:25,281 --> 00:08:25,780 Desculpe. 181 00:08:25,780 --> 00:08:28,510 Antes de todos, eu vou pedir desculpas em nome de todos 182 00:08:28,510 --> 00:08:29,468 inserindo a classe agora. 183 00:08:29,468 --> 00:08:30,810 Eu esqueci de doces hoje. 184 00:08:30,810 --> 00:08:33,640 Me desculpe, eu sou um fracasso esta semana de Halloween. 185 00:08:33,640 --> 00:08:37,070 Vou trazer o dobro da quantidade de doces da próxima vez para compensar isso. 186 00:08:37,070 --> 00:08:42,360 Mas de qualquer maneira, desculpe sobre esse caras, me desculpe. 187 00:08:42,360 --> 00:08:46,640 >> Assim, a maneira que nós podemos realmente entrada em nosso comando o argumento é que 188 00:08:46,640 --> 00:08:51,760 pode fazer chmod permissões grupo de barra, onde o grupo é apenas o que quer 189 00:08:51,760 --> 00:08:54,130 grupo que estamos tentando mudar. 190 00:08:54,130 --> 00:08:56,600 E as permissões estão o que quer que nós queremos adicionar a ele. 191 00:08:56,600 --> 00:08:58,860 Assim, por exemplo, a mais adiciona permissões, 192 00:08:58,860 --> 00:09:01,590 ea subtração tira permissões. 193 00:09:01,590 --> 00:09:07,060 >> E os tipos de grupo, temos a nossa um para todos, u para os usuários, g para grupos, 194 00:09:07,060 --> 00:09:09,050 ou o dos outros. 195 00:09:09,050 --> 00:09:10,300 É um pouco abstrato agora. 196 00:09:10,300 --> 00:09:13,550 Mas nós vamos passar por cima de alguns exemplos apenas para demonstrar isso bem rápido. 197 00:09:13,550 --> 00:09:16,960 Todos bom nesta slide, para que eu possa seguir em frente? 198 00:09:16,960 --> 00:09:18,280 Legal. 199 00:09:18,280 --> 00:09:21,290 >> Assim, por exemplo, rwx. 200 00:09:21,290 --> 00:09:26,720 Antes de falarmos sobre o que ele representa, primeiro de tudo o que rwx significa? 201 00:09:26,720 --> 00:09:31,450 Se você ver que esta certo arquivo tem permissões de rwx, 202 00:09:31,450 --> 00:09:34,270 o que isso significa o pessoa pode ser capaz de fazer? 203 00:09:34,270 --> 00:09:35,740 >> AUDIÊNCIA: Ler, escrever e executar. 204 00:09:35,740 --> 00:09:36,420 >> ANDI Peng: Sim, exatamente. 205 00:09:36,420 --> 00:09:37,840 Você pode ler escrever e executar. 206 00:09:37,840 --> 00:09:40,790 Porque todos os três daqueles caracteres estão presentes. 207 00:09:40,790 --> 00:09:44,370 Então, se nós ir em frente e falar sobre isso em termos de bits, 208 00:09:44,370 --> 00:09:48,490 o rwx também pode ser representada como 700. 209 00:09:48,490 --> 00:09:53,370 Porque, como você pode ver em qualquer tipo de permissão de diretório de arquivos, 210 00:09:53,370 --> 00:09:54,320 há três tríades. 211 00:09:54,320 --> 00:09:58,060 >> Neste caso, apenas o primeiro tríade tem nada lá. 212 00:09:58,060 --> 00:10:04,050 Portanto, neste caso, o símbolo r representa 4, o w é 2, e X é 1. 213 00:10:04,050 --> 00:10:05,860 Se você adicionar os juntos, é 7. 214 00:10:05,860 --> 00:10:08,730 >> E por isso, se você converter -lo para binário, é de 700. 215 00:10:08,730 --> 00:10:10,310 Porque 7 é a primeira tríade. 216 00:10:10,310 --> 00:10:12,760 0, não há nada de presente na segunda tríade. 217 00:10:12,760 --> 00:10:15,850 E então não há nada presente em a terceira tríade, de modo que é outra 0. 218 00:10:15,850 --> 00:10:22,520 >> Assim, no mesmo sentido, um grupo de tríades pode ser representado apenas em bits, apenas 219 00:10:22,520 --> 00:10:23,600 em binário bem. 220 00:10:23,600 --> 00:10:29,920 Assim, 700 significa exatamente a mesma coisa como rwx ------ em termos de permissões. 221 00:10:29,920 --> 00:10:32,590 Todos clara sobre isso? 222 00:10:32,590 --> 00:10:33,090 Legal. 223 00:10:33,090 --> 00:10:40,290 E assim chmod 111 daria que as permissões para o arquivo? 224 00:10:40,290 --> 00:10:42,600 Dar a vocês um casal segundos para converter este. 225 00:10:42,600 --> 00:10:51,140 226 00:10:51,140 --> 00:10:53,250 Lembre-se, o primeiro tríade é para o utilizador. 227 00:10:53,250 --> 00:10:56,320 A segunda tríade é para o grupo. 228 00:10:56,320 --> 00:10:59,450 E a terceira tríade é para todos. 229 00:10:59,450 --> 00:11:03,680 >> E assim chmod 111 daria qual tipo de permissões e para quem? 230 00:11:03,680 --> 00:11:06,520 231 00:11:06,520 --> 00:11:09,020 Pegue um par de segundos para pensar sobre isso e voltar. 232 00:11:09,020 --> 00:11:19,790 233 00:11:19,790 --> 00:11:20,910 Sim. 234 00:11:20,910 --> 00:11:22,920 >> AUDIÊNCIA: Para que todos possam executá-lo. 235 00:11:22,920 --> 00:11:23,920 ANDI Peng: Sim, exatamente. 236 00:11:23,920 --> 00:11:25,544 AUDIÊNCIA: Mas ninguém pode ler ou escrever. 237 00:11:25,544 --> 00:11:27,910 ANDI Peng: E ​​sinta-se livre para explicar a todos 238 00:11:27,910 --> 00:11:29,860 como você chegou a essa conclusão. 239 00:11:29,860 --> 00:11:34,290 >> AUDIÊNCIA: Bem, para o usuário, o grupo, e no mundo, é tudo um, 240 00:11:34,290 --> 00:11:35,700 que é o código para o executável. 241 00:11:35,700 --> 00:11:37,070 >> ANDI Peng: Sim, exatamente. 242 00:11:37,070 --> 00:11:42,320 Então 1, neste caso, todos nós sabemos é que é esse o código executável. 243 00:11:42,320 --> 00:11:45,280 Porque a leitura é 4. 244 00:11:45,280 --> 00:11:45,990 Escrever é 2. 245 00:11:45,990 --> 00:11:47,230 E o executável é 1. 246 00:11:47,230 --> 00:11:51,580 Assim é todos os três tríades são 1, que significa que, para o mundo, para o utilizador, 247 00:11:51,580 --> 00:11:54,680 e para o grupo, eles são todos executável. 248 00:11:54,680 --> 00:11:56,170 >> Todo mundo bem com isso? 249 00:11:56,170 --> 00:11:56,940 ESTÁ BEM. 250 00:11:56,940 --> 00:11:59,180 E assim a segunda forma que podemos, na verdade, 251 00:11:59,180 --> 00:12:01,220 escrever isso também é você poderia apenas fazer chmod 252 00:12:01,220 --> 00:12:05,050 uma vantagem x. um significa tudo ou todos. 253 00:12:05,050 --> 00:12:07,060 O plus significa dar permissões para. 254 00:12:07,060 --> 00:12:09,112 E então o x significa executável. 255 00:12:09,112 --> 00:12:11,070 Portanto, há dois comandos são, na verdade idêntica. 256 00:12:11,070 --> 00:12:12,903 Então, se você deseja executar isto em seu terminal, 257 00:12:12,903 --> 00:12:15,830 você fazer chmod 111, nome de seu diretório ou o arquivo. 258 00:12:15,830 --> 00:12:18,520 Ou você pode fazer chmod um plus x, Nome do seu arquivo de diretório. 259 00:12:18,520 --> 00:12:22,150 A mesma coisa, apenas uma maneira mais fácil, talvez, para alguns representar ou mudança 260 00:12:22,150 --> 00:12:24,280 permissões de arquivo. 261 00:12:24,280 --> 00:12:28,806 >> Cada um OK com chmod antes de seguir em frente? 262 00:12:28,806 --> 00:12:31,700 Legal. 263 00:12:31,700 --> 00:12:35,336 Então, agora nós estamos indo para a cabeça em um alguns slides de conceitos muito abstratas 264 00:12:35,336 --> 00:12:37,210 que eu sou muito bonito vai brisa através. 265 00:12:37,210 --> 00:12:39,530 E é totalmente OK, se você não entendo tudo. 266 00:12:39,530 --> 00:12:42,330 >> Mesmo agora, eu ainda não sei realmente entender tudo completamente. 267 00:12:42,330 --> 00:12:44,640 Mas é mais de ficar a compreensão de nível superior 268 00:12:44,640 --> 00:12:47,280 de como algumas dessas coisas funcionam. 269 00:12:47,280 --> 00:12:50,490 Então, nós estamos indo falar rapidamente sobre TCP / IP, 270 00:12:50,490 --> 00:12:54,880 que é apenas Control Transmission Protocolo cortar Internet Protocol. 271 00:12:54,880 --> 00:12:57,135 >> Lembre-se de palestra, David, que ele ensinará 272 00:12:57,135 --> 00:13:00,700 o exemplo onde ele passar as notas em um envelope 273 00:13:00,700 --> 00:13:02,790 até gosto do topo da sala de aula? 274 00:13:02,790 --> 00:13:06,990 Assim, no auditório da escola de direito David demonstrou essencialmente 275 00:13:06,990 --> 00:13:10,370 como o TCP / IP funciona em no sentido de que tudo o que 276 00:13:10,370 --> 00:13:14,300 é é um meio de garantir que os dados foi entregue através de um servidor 277 00:13:14,300 --> 00:13:15,870 ou na internet. 278 00:13:15,870 --> 00:13:22,270 Assim, no exemplo do envelope e a mensagem, o utilizador no final 279 00:13:22,270 --> 00:13:26,410 podia ver que, oh, eu precisava receber quatro pacotes de informação. 280 00:13:26,410 --> 00:13:28,096 >> Mas eu realmente recebeu apenas três. 281 00:13:28,096 --> 00:13:29,470 Isso significa que deve estar faltando um. 282 00:13:29,470 --> 00:13:30,760 E não foi entregue. 283 00:13:30,760 --> 00:13:33,990 E assim, o TCP / IP na Internet, através do seu computador eo servidor, 284 00:13:33,990 --> 00:13:35,500 faz exatamente a mesma coisa. 285 00:13:35,500 --> 00:13:38,900 Tudo que faz é especificar um quadro em que a perda de dados 286 00:13:38,900 --> 00:13:41,100 pacotes pode ser reenviado e recebido. 287 00:13:41,100 --> 00:13:44,760 >> Como na internet quando você está tentando para acessar os arquivos on-line ou enviar arquivos 288 00:13:44,760 --> 00:13:48,210 para o seu amigo ou olhar para web navegadores, milhares e milhares 289 00:13:48,210 --> 00:13:50,440 de bilhões e bilhões bytes de informações 290 00:13:50,440 --> 00:13:52,840 são transferidos por milissegundo. 291 00:13:52,840 --> 00:13:54,560 E é muito, muito confuso. 292 00:13:54,560 --> 00:13:57,110 E é realmente difícil realmente saber o que já foi enviado 293 00:13:57,110 --> 00:13:58,270 eo que não foi enviado. 294 00:13:58,270 --> 00:14:02,210 >> E assim TCP / IP apenas especifica uma estrutura coesa 295 00:14:02,210 --> 00:14:04,115 em que seu web browser e servidor 296 00:14:04,115 --> 00:14:05,990 pode tipo de comunicar uns com os outros, apenas 297 00:14:05,990 --> 00:14:08,550 certifique-se de que os pacotes são tudo aqui e nada é perdido 298 00:14:08,550 --> 00:14:12,700 e todos os dados que você solicitou é realmente exibido corretamente. 299 00:14:12,700 --> 00:14:16,350 Todos OK em apenas isso muito breve alto nível entender? 300 00:14:16,350 --> 00:14:18,510 Legal. 301 00:14:18,510 --> 00:14:21,550 >> Então nós estamos indo para mover para falar sobre HTTP, que 302 00:14:21,550 --> 00:14:24,610 é apenas Hypertext Transfer Protocol. 303 00:14:24,610 --> 00:14:32,550 HTTP, tudo isso é o que quer que qualquer página ou arquivo é acessado em seu site, 304 00:14:32,550 --> 00:14:35,810 o servidor retorna um HTTP código de status em resposta 305 00:14:35,810 --> 00:14:39,869 o pedido certificando-se de que qualquer um, oh, esta solicitação foi aprovada. 306 00:14:39,869 --> 00:14:41,410 E tudo está exibindo corretamente. 307 00:14:41,410 --> 00:14:43,500 Ou, oh, não, 404. 308 00:14:43,500 --> 00:14:44,730 Algo deu errado. 309 00:14:44,730 --> 00:14:45,940 Oh, eu não posso exibir. 310 00:14:45,940 --> 00:14:50,370 >> Tudo o que é que o que quer você está tentando acessar, 311 00:14:50,370 --> 00:14:55,160 usar como o usuário está tentando acessar, na internet-- apenas certificando-se 312 00:14:55,160 --> 00:15:00,080 que você quer ter sucesso acessada tudo o que foi ou não 313 00:15:00,080 --> 00:15:02,080 acessado com êxito que quer que fosse. 314 00:15:02,080 --> 00:15:05,120 E assim o status HTTP código apenas fornece-lhe 315 00:15:05,120 --> 00:15:09,910 um meio de ser capaz de se saber ou não foi bem sucedida ou não. 316 00:15:09,910 --> 00:15:13,440 Assim, por exemplo, uma solicitação de exemplo. 317 00:15:13,440 --> 00:15:16,050 >> Você pode ver aqui é geralmente tipicamente quatro linhas. 318 00:15:16,050 --> 00:15:22,530 Temos um HTTP GET 1.1, que é apenas o URL pedido método, o protocolo 319 00:15:22,530 --> 00:15:24,490 versão, o nome do campo, e o valor do campo. 320 00:15:24,490 --> 00:15:26,810 Então não há necessidade de completamente memorizar nada aqui. 321 00:15:26,810 --> 00:15:29,960 Apenas um tipo de conhecimento -se com a forma como estas olhar. 322 00:15:29,960 --> 00:15:34,060 >> Neste exemplo, o método de pedido URL é apenas o que quer pedido 323 00:15:34,060 --> 00:15:35,620 você está enviando o servidor. 324 00:15:35,620 --> 00:15:40,710 Como, hey, servidor, eu realmente quero acesso yadda, yadda, yadda, página HTTP. 325 00:15:40,710 --> 00:15:43,785 A versão do protocolo é apenas o que quer Versão seu host ou seu servidor 326 00:15:43,785 --> 00:15:45,490 está usando para acessar informações. 327 00:15:45,490 --> 00:15:49,510 >> O nome do campo é o site ou o URL que você está tentando acessar, 328 00:15:49,510 --> 00:15:52,610 Neste caso, www.apple.com. 329 00:15:52,610 --> 00:15:56,110 E o valor do campo é apenas tipicamente nome, valor. 330 00:15:56,110 --> 00:15:59,540 E isso pode ser qualquer tipo de combinação de letras ou números ou o que quer. 331 00:15:59,540 --> 00:16:02,890 >> Assim, um pedido típico, então o que seu computador realmente 332 00:16:02,890 --> 00:16:08,400 envia para o servidor que diz, hey, você sabe o que eu preciso esta exibido, 333 00:16:08,400 --> 00:16:13,000 esse é o tipo de pedido que eles realmente receber. 334 00:16:13,000 --> 00:16:16,760 Uma resposta exemplo do que o servidor iria enviar de volta para você 335 00:16:16,760 --> 00:16:20,320 seria praticamente a mesma coisa, exceto com um código de status no topo. 336 00:16:20,320 --> 00:16:24,550 Assim, 200, 0 2 0 é sempre o código de status OK. 337 00:16:24,550 --> 00:16:26,050 Como, OK, essa solicitação foi aprovada. 338 00:16:26,050 --> 00:16:27,980 Você foi capaz de acessar tudo corretamente. 339 00:16:27,980 --> 00:16:28,810 A vida é boa. 340 00:16:28,810 --> 00:16:29,990 A vida é bela. 341 00:16:29,990 --> 00:16:32,150 Tudo é totalmente bom. 342 00:16:32,150 --> 00:16:36,050 >> E assim, este apenas diz seu navegador e seu servidor, hey, está tudo bem. 343 00:16:36,050 --> 00:16:37,470 Eu tenho todas as informações que eu preciso. 344 00:16:37,470 --> 00:16:39,160 Legal. 345 00:16:39,160 --> 00:16:41,790 Mas o problema é às vezes os problemas surgem 346 00:16:41,790 --> 00:16:46,850 quando você have-- durar Eu acho Eu falei sobre duplicatas. 347 00:16:46,850 --> 00:16:48,870 Você tem menos boas respostas. 348 00:16:48,870 --> 00:16:52,660 >> Assim, por exemplo, 404 é o Page Not Found. 349 00:16:52,660 --> 00:16:54,897 Você às vezes tem um acesso proibido. 350 00:16:54,897 --> 00:16:56,730 Você tem vários outros códigos de status que eu estou 351 00:16:56,730 --> 00:16:59,688 a certeza de que todos vimos quando você está tentando fazer pesquisas na internet. 352 00:16:59,688 --> 00:17:02,300 E seu navegador lhe dá o, não, não pode acessar. 353 00:17:02,300 --> 00:17:04,190 E você é como, bem, porcaria. 354 00:17:04,190 --> 00:17:09,260 >> Então, só muito bonito, há alguns códigos de status bastante comum. 355 00:17:09,260 --> 00:17:14,109 Talvez se familiarizar com as quais são. 356 00:17:14,109 --> 00:17:16,000 O mais engraçado que um Eu acho que eu já ouvi 357 00:17:16,000 --> 00:17:18,040 de-- se acontecer de você olhar para cima de todos eles 358 00:17:18,040 --> 00:17:21,490 on-line, por alguma razão há na verdade, um verdadeiro código de status 359 00:17:21,490 --> 00:17:26,619 chamado 418 eu sou um bule de chá. 360 00:17:26,619 --> 00:17:29,610 >> Eu pesquisei onde o origem desta era. 361 00:17:29,610 --> 00:17:33,150 E, aparentemente, um April Fools ' Dia um par de décadas atrás, 362 00:17:33,150 --> 00:17:36,415 alguém pensou que seria divertido para criar um novo código de status chamado 418 363 00:17:36,415 --> 00:17:37,380 Eu sou um bule de chá. 364 00:17:37,380 --> 00:17:40,760 Legitimamente, o nome deste código é chamado eu sou um bule de chá. 365 00:17:40,760 --> 00:17:43,670 >> Eu esqueço o que página você tem que ir para realmente fazer esta exposição. 366 00:17:43,670 --> 00:17:47,955 Mas, aparentemente, você pode, na verdade, obter um código de status que eu sou 367 00:17:47,955 --> 00:17:51,400 um bule de alguma forma através fazendo alguma coisa. 368 00:17:51,400 --> 00:17:54,480 Portanto, há centenas e centenas de códigos de status. 369 00:17:54,480 --> 00:17:56,730 >> Alguns deles fazem mais sentido do que outros. 370 00:17:56,730 --> 00:18:01,430 Mas praticamente apenas conhecimento -se com as mais comuns. 371 00:18:01,430 --> 00:18:04,090 O corpo da entidade é solicitada curto e stout, aparentemente. 372 00:18:04,090 --> 00:18:07,990 >> Então, às vezes, há mais erros assustador do que eu sou um bule de chá. 373 00:18:07,990 --> 00:18:11,210 Mas este é um que eu acho você tipo de esperança de acertar. 374 00:18:11,210 --> 00:18:14,130 Mas eu não acho que você vai. 375 00:18:14,130 --> 00:18:17,260 Todos bom sobre o estado apenas códigos, solicitações, processos, tomada de 376 00:18:17,260 --> 00:18:19,155 certeza informação é entregue corretamente? 377 00:18:19,155 --> 00:18:22,270 378 00:18:22,270 --> 00:18:26,120 >> Então agora vamos transição em de uma parte divertida da sessão de hoje, 379 00:18:26,120 --> 00:18:28,500 onde falamos um pouco sobre HTML. 380 00:18:28,500 --> 00:18:32,580 HTML, tudo o que é HyperText Linguagem de marcação. 381 00:18:32,580 --> 00:18:35,160 É apenas a linguagem padrão você usa para criar todos os web 382 00:18:35,160 --> 00:18:36,690 páginas na internet. 383 00:18:36,690 --> 00:18:39,560 >> Assim, qualquer página da Web, o que é sua página web favorita? 384 00:18:39,560 --> 00:18:40,855 Qual é a sua página web favorita? 385 00:18:40,855 --> 00:18:41,771 >> AUDIÊNCIA: [inaudível]. 386 00:18:41,771 --> 00:18:42,270 387 00:18:42,270 --> 00:18:43,090 ANDI Peng: Desculpe? 388 00:18:43,090 --> 00:18:43,980 >> AUDIÊNCIA: Tumblr. 389 00:18:43,980 --> 00:18:44,730 >> ANDI Peng: Tumblr. 390 00:18:44,730 --> 00:18:46,800 Então Tumblr está escrito em HTML. 391 00:18:46,800 --> 00:18:50,700 E assim nós vamos realmente passar e brincar com algumas dessas coisas 392 00:18:50,700 --> 00:18:51,980 mais tarde. 393 00:18:51,980 --> 00:18:54,980 Praticamente tudo o que você precisa aprender, conhecer, 394 00:18:54,980 --> 00:18:58,540 escrever em HTML que você pode provavelmente apenas o Google na internet. 395 00:18:58,540 --> 00:19:04,490 >> HTML, não é um programa como o C onde você pode criar variáveis ​​e fazer 396 00:19:04,490 --> 00:19:05,600 coisas legais com ele. 397 00:19:05,600 --> 00:19:08,747 É mais do que apenas, oh, é assim que eu quer que as coisas aparecem no meu site. 398 00:19:08,747 --> 00:19:10,080 E eu só vou colocá-lo. 399 00:19:10,080 --> 00:19:12,160 E vai para denominá-lo. 400 00:19:12,160 --> 00:19:15,650 >> Então, HTML, em certo sentido, é como uma formatação ou de modelo de idioma. 401 00:19:15,650 --> 00:19:16,680 É muito mais fácil. 402 00:19:16,680 --> 00:19:19,030 É muito mais fácil de aprender, muito mais fácil de escrever em 403 00:19:19,030 --> 00:19:21,450 de sua programação normal língua, muito fácil, 404 00:19:21,450 --> 00:19:24,310 muito fácil acessível e amigável. 405 00:19:24,310 --> 00:19:29,040 >> Então, nós estamos indo realmente para jogar ao redor, escrever nossas próprias páginas hoje. 406 00:19:29,040 --> 00:19:32,900 Mas antes de começarmos, eu só quero passar por cima de algumas breves melhores práticas. 407 00:19:32,900 --> 00:19:35,660 Como o HTML é tal um fácil linguagem e porque mesmo 408 00:19:35,660 --> 00:19:39,012 se você fizer algumas coisas erradas, às vezes pode não notar, 409 00:19:39,012 --> 00:19:41,970 nós queremos ter certeza de que estamos na verdade, aderindo às melhores práticas 410 00:19:41,970 --> 00:19:44,490 para certificar-se de que as coisas que poderia estar acontecendo ao redor, mas 411 00:19:44,490 --> 00:19:49,660 nem sempre está indo para não ir para a direita certifique-se de que eles estão minimizados. 412 00:19:49,660 --> 00:19:53,570 >> Então, basicamente, certifique- seus fechando todas as tags 413 00:19:53,570 --> 00:19:54,737 quando você está escrevendo em HTML. 414 00:19:54,737 --> 00:19:56,486 Se você estiver abrindo um corpo, certifique-se que você é 415 00:19:56,486 --> 00:19:58,015 fechá-lo com um corpo em algum lugar. 416 00:19:58,015 --> 00:20:00,720 Você quer ter certeza de que o seu página web valida usando 417 00:20:00,720 --> 00:20:02,070 o que é chamado o W3 Validador. 418 00:20:02,070 --> 00:20:05,460 Você pode apenas Google que on-line, e há um link para ele. 419 00:20:05,460 --> 00:20:07,820 >> E então você quer HTML separado, que 420 00:20:07,820 --> 00:20:13,060 é a sua linguagem de marcação a partir do seu estilo, que é a linguagem CSS que David 421 00:20:13,060 --> 00:20:17,510 demonstrou que também somos vai jogar um pouco com palestra. 422 00:20:17,510 --> 00:20:19,120 Legal. 423 00:20:19,120 --> 00:20:23,500 Então, quando você quer executar HTML no aparelho CS50, 424 00:20:23,500 --> 00:20:26,240 nós estamos indo para executar um programa chamado apache, 425 00:20:26,240 --> 00:20:29,810 que tudo é apenas um construído em servidor web que todos na CS50 426 00:20:29,810 --> 00:20:31,410 tem acesso. 427 00:20:31,410 --> 00:20:35,700 Nós chamamos isso de apache50 só porque nós gosto de chamar tudo 50 em CS50. 428 00:20:35,700 --> 00:20:39,610 >> Assim, a maneira que você iniciar o CS50 web servidor está digitando em seu comando 429 00:20:39,610 --> 00:20:42,860 linha apache50 iniciar ponto. 430 00:20:42,860 --> 00:20:46,665 E se você quer terminá-la a qualquer tempo, você apache50 acabar com nenhum ponto. 431 00:20:46,665 --> 00:20:47,910 E você apenas pressione Enter. 432 00:20:47,910 --> 00:20:50,810 E deve ser a posição até aqui em breve. 433 00:20:50,810 --> 00:20:53,630 434 00:20:53,630 --> 00:20:54,130 Aham. 435 00:20:54,130 --> 00:20:58,110 Então, eu estou indo só para ir rapidamente sobre um exemplo de uma página da web realmente breve. 436 00:20:58,110 --> 00:21:00,280 E nós estamos indo para gastar como 10, 15 minutos jogando 437 00:21:00,280 --> 00:21:04,008 em torno de escrever nossas próprias páginas web. 438 00:21:04,008 --> 00:21:05,320 ESTÁ BEM. 439 00:21:05,320 --> 00:21:07,841 Então, aqui no IDE-- todos podem ver isso? 440 00:21:07,841 --> 00:21:08,340 Na verdade, não. 441 00:21:08,340 --> 00:21:11,400 Aqui, eu vou aumentar o zoom. 442 00:21:11,400 --> 00:21:15,850 >> Eu só tenho este breve template aqui com nada realmente nele. 443 00:21:15,850 --> 00:21:20,660 Nós apenas estamos indo para escrever rapidamente um programa de HTML na qual acabamos 444 00:21:20,660 --> 00:21:22,050 dizer Olá para o mundo. 445 00:21:22,050 --> 00:21:24,970 Então, mesmo que em C, agora estamos só vai fazê-lo em HTML. 446 00:21:24,970 --> 00:21:28,250 Alguém quer realmente apenas tentar dar-me a primeira coisa que você 447 00:21:28,250 --> 00:21:31,870 teria que colocar em um documento HTML? 448 00:21:31,870 --> 00:21:32,850 Sim. 449 00:21:32,850 --> 00:21:35,965 >> AUDIÊNCIA: Os colchetes, o [inaudível]. 450 00:21:35,965 --> 00:21:36,590 ANDI Peng: Yep. 451 00:21:36,590 --> 00:21:47,200 452 00:21:47,200 --> 00:21:50,930 Então, algo que é muito original para HTML que nós tipicamente tradicional 453 00:21:50,930 --> 00:21:56,080 não encontrar em outro comando linguagens de programação de nível de linha 454 00:21:56,080 --> 00:21:59,890 é que nós realmente para especificar o tipo de arquivo 455 00:21:59,890 --> 00:22:01,987 que este vai ser na parte superior do nosso código. 456 00:22:01,987 --> 00:22:04,570 Portanto, neste instance-- eu acho esse é o comando certo, certo? 457 00:22:04,570 --> 00:22:10,050 458 00:22:10,050 --> 00:22:10,550 Aham. 459 00:22:10,550 --> 00:22:14,860 No topo, você apenas deseja incluir estrondo html DOCTYPE entre parênteses apenas 460 00:22:14,860 --> 00:22:17,670 para dizer a seu computador, hey, olhar para fora. 461 00:22:17,670 --> 00:22:20,050 E documento HTML está chegando. 462 00:22:20,050 --> 00:22:22,250 E então como é que nós queremos para começar nosso arquivo? 463 00:22:22,250 --> 00:22:25,540 Se nós só queremos dizer Olá, tenho um A página web que diz Olá para o mundo, 464 00:22:25,540 --> 00:22:26,915 como é que vamos construir isso? 465 00:22:26,915 --> 00:22:32,910 466 00:22:32,910 --> 00:22:35,300 >> Na verdade, vamos voltar para o Google. 467 00:22:35,300 --> 00:22:36,910 E nós podemos realmente fazer isso. 468 00:22:36,910 --> 00:22:43,170 469 00:22:43,170 --> 00:22:43,670 Aham. 470 00:22:43,670 --> 00:22:44,840 Aí vamos nós. 471 00:22:44,840 --> 00:22:47,630 Então HTML. 472 00:22:47,630 --> 00:22:52,390 Como você pode ver, meu navegador é, na verdade, denominar automaticamente isso para mim. 473 00:22:52,390 --> 00:22:56,010 >> Mesma coisa que em C, quando você criar uma chaveta aberta, 474 00:22:56,010 --> 00:22:59,020 o navegador automaticamente acrescenta em um fim chaveta. 475 00:22:59,020 --> 00:23:02,210 Felizmente, nosso IDE adora fazer isso por nós também. 476 00:23:02,210 --> 00:23:05,490 Então agora podemos tipo de tipo o início de uma marcação, 477 00:23:05,490 --> 00:23:09,139 e ele vai dizer-nos sempre para lembrar de digitar o fim da etiqueta. 478 00:23:09,139 --> 00:23:10,680 Eu acho que isso precisa ser capitalizado. 479 00:23:10,680 --> 00:23:15,510 480 00:23:15,510 --> 00:23:21,760 E então nós queremos adicionar, sempre, uma cabeça em que é o título. 481 00:23:21,760 --> 00:23:25,270 482 00:23:25,270 --> 00:23:29,160 Nós apenas queremos chamar talvez este Olá, e então o corpo. 483 00:23:29,160 --> 00:23:34,010 484 00:23:34,010 --> 00:23:36,310 >> E lá vai você. 485 00:23:36,310 --> 00:23:39,650 Isso é realmente o nosso documento HTML. 486 00:23:39,650 --> 00:23:45,030 Assim, a maneira que qualquer documento HTML é sempre denominado em-- mesma coisa 487 00:23:45,030 --> 00:23:46,720 com void main int. 488 00:23:46,720 --> 00:23:49,600 Você sempre quer ter HTML de uma tag de abertura e fechamento 489 00:23:49,600 --> 00:23:52,100 na parte superior e inferior do seu código. 490 00:23:52,100 --> 00:23:56,900 >> Você quer ter uma cabeça dentro de que contém o título, qualquer que seja apenas 491 00:23:56,900 --> 00:24:01,430 vai exibir a guia do seu web principal, e, em seguida, um corpo dentro do qual 492 00:24:01,430 --> 00:24:04,120 vai realmente mostrar o conteúdo de tudo o que você quer fazer. 493 00:24:04,120 --> 00:24:08,220 Então, se você quisesse realmente executado isso, eu estou indo para zoom out. 494 00:24:08,220 --> 00:24:12,740 Você pode realmente começar apache50 iniciar ponto. 495 00:24:12,740 --> 00:24:15,650 496 00:24:15,650 --> 00:24:16,150 Legal. 497 00:24:16,150 --> 00:24:18,980 E assim como você pode ver, agora esta ligação tem aparecido. 498 00:24:18,980 --> 00:24:21,940 Ele diz que seu site é agora disponível em algum link abaixo. 499 00:24:21,940 --> 00:24:25,910 Então, toda a nossa IDE tem done-- não IDE, sorry-- sim, 500 00:24:25,910 --> 00:24:33,280 nossa IDE tem feito é criar uma web ligação sobre a qual todas as nossas páginas web 501 00:24:33,280 --> 00:24:35,407 pode ser acessado no servidor. 502 00:24:35,407 --> 00:24:36,490 Então, vamos dar uma olhada aqui. 503 00:24:36,490 --> 00:24:40,240 >> Vamos clicar sobre isso, vá para hello.html. 504 00:24:40,240 --> 00:24:42,895 E você vê uma forma muito simples A página web para Olá mundo. 505 00:24:42,895 --> 00:24:46,477 506 00:24:46,477 --> 00:24:47,420 ESTÁ BEM. 507 00:24:47,420 --> 00:24:50,513 Na verdade, estamos indo apenas tem everyone-- sim, qual é? 508 00:24:50,513 --> 00:24:52,353 >> AUDIÊNCIA: Eu tenho uma pergunta básica. 509 00:24:52,353 --> 00:24:52,978 ANDI Peng: Yup. 510 00:24:52,978 --> 00:24:58,064 AUDIÊNCIA: Como você salvar seu arquivo como um HTML? 511 00:24:58,064 --> 00:24:58,730 ANDI Peng: Sim. 512 00:24:58,730 --> 00:25:02,960 513 00:25:02,960 --> 00:25:10,820 Então, se eu fosse para criar um novo arquivo, se eu fizer Novo arquivo, Untittle, se eu fizer, 514 00:25:10,820 --> 00:25:14,390 section.html, crescimento, isso é tudo o que tenho que fazer. 515 00:25:14,390 --> 00:25:15,363 >> AUDIÊNCIA: [inaudível]? 516 00:25:15,363 --> 00:25:15,946 ANDI Peng: Não. 517 00:25:15,946 --> 00:25:16,660 AUDIÊNCIA: [inaudível]. 518 00:25:16,660 --> 00:25:17,240 ANDI Peng: Não. 519 00:25:17,240 --> 00:25:18,156 AUDIÊNCIA: [inaudível]. 520 00:25:18,156 --> 00:25:19,110 ANDI Peng: Sim. 521 00:25:19,110 --> 00:25:24,300 Praticamente, a extensão da o arquivo que está dentro de seu IDE, 522 00:25:24,300 --> 00:25:27,840 que informa ao computador, que diz ao navegador, hey, olhar para fora. 523 00:25:27,840 --> 00:25:30,480 Este vai ser um código escrito nesta linguagem. 524 00:25:30,480 --> 00:25:34,240 Assim, por exemplo, no Microsoft Word, o que faz todos os documentos do Word 525 00:25:34,240 --> 00:25:37,070 acabar com o que extensão? 526 00:25:37,070 --> 00:25:39,830 .doc ou .docx, certo? 527 00:25:39,830 --> 00:25:42,299 >> Tudo o que faz é especifica para seu sistema operacional, hey, 528 00:25:42,299 --> 00:25:43,840 você tem um documento do Word chegando. 529 00:25:43,840 --> 00:25:44,940 Abra-o com o Word. 530 00:25:44,940 --> 00:25:46,955 A mesma coisa com PDFs. 531 00:25:46,955 --> 00:25:49,650 Ele sabe, oh, eu preciso para abrir esse arquivo 532 00:25:49,650 --> 00:25:52,020 com o Adobe Reader ou Adobe Acrobat. 533 00:25:52,020 --> 00:25:56,130 >> E assim extensões operar o mesma forma que em seu computador. 534 00:25:56,130 --> 00:26:00,750 Se você especificar sua página de código a ser nomeado HTML, então ele sabe, 535 00:26:00,750 --> 00:26:01,880 oh, você tem código HTML. 536 00:26:01,880 --> 00:26:04,890 Vou tratá-lo como código html. 537 00:26:04,890 --> 00:26:06,600 Portanto, é super inteligente nesse sentido. 538 00:26:06,600 --> 00:26:11,360 539 00:26:11,360 --> 00:26:18,730 >> Então, todo mundo, vamos tomar como 10 minutos e apenas criar nossos próprios websites. 540 00:26:18,730 --> 00:26:21,020 Vamos adicionar nas coisas encantadoras. 541 00:26:21,020 --> 00:26:23,440 Sinta-se livre para dizer o que quiser. 542 00:26:23,440 --> 00:26:27,890 Eu só quero ter certeza de que servidores de todos estão funcionando corretamente 543 00:26:27,890 --> 00:26:31,220 antes de liberá-lo para o pset. 544 00:26:31,220 --> 00:26:33,490 Porque se seus servidores não correr para o pset, 545 00:26:33,490 --> 00:26:34,847 que será muito, muito ruim. 546 00:26:34,847 --> 00:27:17,380 547 00:27:17,380 --> 00:27:21,093 >> Eu estou indo só para flutuar e ver o que todo mundo está trabalhando. 548 00:27:21,093 --> 00:27:26,965 549 00:27:26,965 --> 00:27:27,590 Como está indo? 550 00:27:27,590 --> 00:27:29,048 >> AUDIÊNCIA: Eu só liguei o computador. 551 00:27:29,048 --> 00:27:29,923 >> ANDI Peng: Isso é OK. 552 00:27:29,923 --> 00:27:41,200 553 00:27:41,200 --> 00:27:42,390 >> AUDIÊNCIA: [inaudível]. 554 00:27:42,390 --> 00:27:44,284 >> ANDI Peng: Apenas o seu IDE. 555 00:27:44,284 --> 00:27:44,784 Sim. 556 00:27:44,784 --> 00:27:54,040 557 00:27:54,040 --> 00:27:55,910 >> AUDIÊNCIA: [inaudível]. 558 00:27:55,910 --> 00:27:57,590 >> ANDI Peng: É OK. 559 00:27:57,590 --> 00:27:59,491 >> AUDIÊNCIA: [inaudível]. 560 00:27:59,491 --> 00:28:00,490 ANDI Peng: Totalmente bem. 561 00:28:00,490 --> 00:28:47,705 562 00:28:47,705 --> 00:28:51,530 Está todo mundo acessando OK seu servidor web? 563 00:28:51,530 --> 00:28:52,970 É apache50 correndo OK? 564 00:28:52,970 --> 00:28:54,700 Eu acho que em alguns dos as outras seções, 565 00:28:54,700 --> 00:28:58,790 teve problemas com as pessoas não ser capaz de acessar o servidor. 566 00:28:58,790 --> 00:28:59,290 Sim. 567 00:28:59,290 --> 00:29:05,764 Então você só executar apache50 espaço iniciar período espaço. 568 00:29:05,764 --> 00:29:06,680 AUDIÊNCIA: [inaudível]. 569 00:29:06,680 --> 00:29:07,610 ANDI Peng: Yup. 570 00:29:07,610 --> 00:29:08,294 Boa? 571 00:29:08,294 --> 00:29:09,210 >> AUDIÊNCIA: [inaudível]. 572 00:29:09,210 --> 00:29:12,530 573 00:29:12,530 --> 00:29:13,350 >> ANDI Peng: Oh, OK. 574 00:29:13,350 --> 00:29:14,808 Então você deveria ter um espaço. 575 00:29:14,808 --> 00:29:15,425 Então apache50-- 576 00:29:15,425 --> 00:29:16,115 >> AUDIÊNCIA: eu fiz. 577 00:29:16,115 --> 00:29:17,661 >> ANDI Peng: espaço --start. 578 00:29:17,661 --> 00:29:18,660 AUDIÊNCIA: Oh, espaço dot. 579 00:29:18,660 --> 00:29:20,110 ANDI Peng: Yup, espaço dot. 580 00:29:20,110 --> 00:29:23,230 Ai está. 581 00:29:23,230 --> 00:29:25,490 Assim, pois, se você tiver uma página HTML criado, 582 00:29:25,490 --> 00:29:28,560 então você pode apenas ir diretamente para o link que ele especifica. 583 00:29:28,560 --> 00:29:30,539 E você deve ser capaz de acessá-lo. 584 00:29:30,539 --> 00:29:35,130 585 00:29:35,130 --> 00:29:37,876 >> Todo mundo foi capaz de acessar suas páginas da web OK? 586 00:29:37,876 --> 00:29:39,339 >> AUDIÊNCIA: [inaudível]. 587 00:29:39,339 --> 00:29:40,380 ANDI Peng: Ah, isso é OK. 588 00:29:40,380 --> 00:29:43,551 589 00:29:43,551 --> 00:29:44,964 >> AUDIÊNCIA: [inaudível]. 590 00:29:44,964 --> 00:29:45,630 ANDI Peng: Sim. 591 00:29:45,630 --> 00:29:48,171 Eu acho que você pode realmente abrir -lo dentro de seu browser, navegador 592 00:29:48,171 --> 00:29:49,955 e não apenas o seu navegador IDE. 593 00:29:49,955 --> 00:29:51,580 Sim, eu acho que se você copiar e colá-lo. 594 00:29:51,580 --> 00:29:53,920 >> AUDIÊNCIA: E, em seguida, como podemos desligá-lo? 595 00:29:53,920 --> 00:29:54,590 [INAUDÍVEL] 596 00:29:54,590 --> 00:29:58,720 >> ANDI Peng: Sim, você faz apache50 parar com nenhum período. 597 00:29:58,720 --> 00:29:59,220 Aham. 598 00:29:59,220 --> 00:30:01,180 >> AUDIÊNCIA: [inaudível]. 599 00:30:01,180 --> 00:30:02,768 >> ANDI Peng: Com nenhum período. 600 00:30:02,768 --> 00:30:04,051 Sim. 601 00:30:04,051 --> 00:30:04,550 Aí vamos nós. 602 00:30:04,550 --> 00:30:05,050 Aham. 603 00:30:05,050 --> 00:30:08,480 604 00:30:08,480 --> 00:30:09,855 Estamos criando nossas próprias páginas web. 605 00:30:09,855 --> 00:30:10,646 >> AUDIÊNCIA: Ah, legal. 606 00:30:10,646 --> 00:30:13,396 607 00:30:13,396 --> 00:30:14,062 ANDI Peng: Sim. 608 00:30:14,062 --> 00:30:20,484 609 00:30:20,484 --> 00:30:22,420 >> AUDIÊNCIA: Eu tenho uma pergunta. 610 00:30:22,420 --> 00:30:25,294 Então apache 50-- 611 00:30:25,294 --> 00:30:26,731 >> ANDI Peng: 50, sim. 612 00:30:26,731 --> 00:30:28,168 >> AUDIÊNCIA: [inaudível]. 613 00:30:28,168 --> 00:30:29,130 >> ANDI Peng: O quê? 614 00:30:29,130 --> 00:30:29,750 Isso é estranho. 615 00:30:29,750 --> 00:30:32,244 Veja, que era uma espécie de questão que estava acontecendo antes. 616 00:30:32,244 --> 00:30:37,820 617 00:30:37,820 --> 00:30:38,730 ESTÁ BEM. 618 00:30:38,730 --> 00:30:39,800 Me ver depois seção. 619 00:30:39,800 --> 00:30:42,320 Porque nós estamos tendo alguns problemas com o servidor. 620 00:30:42,320 --> 00:30:44,325 >> E você quiser fazer Certifique-se de que o servidor é 621 00:30:44,325 --> 00:30:45,700 execução antes de iniciar o pset. 622 00:30:45,700 --> 00:30:47,800 Porque você vai precisar dele. 623 00:30:47,800 --> 00:30:48,300 Sim. 624 00:30:48,300 --> 00:30:51,299 Existe mais alguém que não tenha sido capazes de obter seu servidor para iniciar? 625 00:30:51,299 --> 00:31:12,410 626 00:31:12,410 --> 00:31:17,840 >> Para aqueles de vocês que querem adicionar estilo adicional para suas páginas web, 627 00:31:17,840 --> 00:31:20,450 nós podemos realmente fazer o que David fez na conferência, bem como, 628 00:31:20,450 --> 00:31:24,070 que é criar um estilo adicional folha, que é um ponto CSS, em cascata 629 00:31:24,070 --> 00:31:30,080 Style Sheet e, na verdade, apenas adicione-in. 630 00:31:30,080 --> 00:31:33,550 Assim, por exemplo, eu criei apenas praticamente quase a mesma exata 631 00:31:33,550 --> 00:31:37,180 David fez na palestra. 632 00:31:37,180 --> 00:31:39,220 Você pode muito bem apenas fazer corpo. 633 00:31:39,220 --> 00:31:45,980 >> Você tem o que são chamados de tags no qual você pode aplicar para IDE seja qual for secção 634 00:31:45,980 --> 00:31:48,650 você quer dentro de seu real para página HTML. 635 00:31:48,650 --> 00:31:54,890 Assim, o corpo da página, você pode fazer centro align texto. 636 00:31:54,890 --> 00:31:58,110 E então eu vou criativo uma tag chamado superior interna 637 00:31:58,110 --> 00:32:01,860 dos quais eu quero essas coisas para acontecer, atribuir um tamanho maior de pixels 638 00:32:01,860 --> 00:32:03,104 para a fonte. 639 00:32:03,104 --> 00:32:04,520 Eu quero que a espessura para ser ousado. 640 00:32:04,520 --> 00:32:06,478 E eu quero a cor para ser azul, assim arbitrária 641 00:32:06,478 --> 00:32:08,570 valores que eu decidi escolher. 642 00:32:08,570 --> 00:32:10,870 Eu posso criar uma outra tag chamado meio. 643 00:32:10,870 --> 00:32:12,640 Tamanho da fonte, torná-lo um pouco menor. 644 00:32:12,640 --> 00:32:17,730 E então eu posso criar outra tag chamado fundo onde eu quero o tamanho da fonte 645 00:32:17,730 --> 00:32:20,900 para ser ainda menor ainda. 646 00:32:20,900 --> 00:32:25,630 >> E assim praticamente este é apenas exemplo de folhas de estilo de código fonte ou origem 647 00:32:25,630 --> 00:32:27,400 que é muito fácil simplesmente Google. 648 00:32:27,400 --> 00:32:31,560 Se você diz, oh, eu quero a minha fonte para estar em itálico e verde escuro, 649 00:32:31,560 --> 00:32:33,980 você pode provavelmente Google, e, em seguida, ele vai dizer 650 00:32:33,980 --> 00:32:37,590 as tags ou identificações apropriadas para criar. 651 00:32:37,590 --> 00:32:41,670 E assim a maneira que você realmente tipo de ter isso em um documento HTML 652 00:32:41,670 --> 00:32:45,660 ou usá-lo é tudo que você tem a fazer aqui é na cabeça 653 00:32:45,660 --> 00:32:48,560 adicionar um link para a folha de estilo. 654 00:32:48,560 --> 00:32:53,600 >> Então você pode simplesmente ligar iguais href seja qual for o nome de sua folha de estilo 655 00:32:53,600 --> 00:32:54,590 é. 656 00:32:54,590 --> 00:32:56,740 E, em seguida, a relação é uma folha de estilo. 657 00:32:56,740 --> 00:33:00,700 Então, dentro de qualquer documento HTML, contanto que você incluir esta folha CSS ponto, 658 00:33:00,700 --> 00:33:07,140 você deve ser capaz de acessar e ter as propriedades lá. 659 00:33:07,140 --> 00:33:10,370 >> Assim, por exemplo, aqui eu tenho apenas criar outra página web exemplo. 660 00:33:10,370 --> 00:33:15,680 Este é bem-vindo à seção CS50 Terças-feiras de 2:00 para 3:30 comigo. 661 00:33:15,680 --> 00:33:20,300 E então eu adicionei uma imagem bonita que que potencialmente deve ser capaz de ver. 662 00:33:20,300 --> 00:33:24,620 >> Então, se você der uma olhada aqui, se você vai para style.html, 663 00:33:24,620 --> 00:33:26,310 criamos uma página web com gatinhos. 664 00:33:26,310 --> 00:33:29,420 Porque gatinho são impressionantes. 665 00:33:29,420 --> 00:33:33,570 Assim, adicionando uma imagem é apenas img ligação SRC. 666 00:33:33,570 --> 00:33:36,260 667 00:33:36,260 --> 00:33:38,310 >> Praticamente, se há qualquer tipo de recurso 668 00:33:38,310 --> 00:33:40,268 que você deseja adicionar ao seu website-- então vamos dizer, 669 00:33:40,268 --> 00:33:43,290 você quer adicionar um menu ou uma barra de pesquisa ou como 670 00:33:43,290 --> 00:33:46,450 um image-- apenas o Google como fazer isso. 671 00:33:46,450 --> 00:33:48,277 E você só plop nesse formato. 672 00:33:48,277 --> 00:33:50,110 E você pode apenas bonita tanto basta adicioná-lo dentro. 673 00:33:50,110 --> 00:33:52,670 É muito, muito fácil. 674 00:33:52,670 --> 00:33:55,014 >> Nós estamos criando nosso próprio páginas da web agora. 675 00:33:55,014 --> 00:33:55,680 Se você quiser-- 676 00:33:55,680 --> 00:33:56,580 >> AUDIÊNCIA: [inaudível] 677 00:33:56,580 --> 00:33:57,470 >> ANDI Peng: Desculpe? 678 00:33:57,470 --> 00:33:59,310 >> AUDIÊNCIA: [inaudível]. 679 00:33:59,310 --> 00:34:01,340 >> ANDI Peng: Oh, o div é apenas uma divisão 680 00:34:01,340 --> 00:34:04,370 dizendo-me que, oh, eu tenho uma determinada seção chamada 681 00:34:04,370 --> 00:34:07,480 meio em que eu estou aplicando minha tag CSS e, em seguida 682 00:34:07,480 --> 00:34:09,619 minha outra divisão com o fundo. 683 00:34:09,619 --> 00:34:10,785 Isso é tudo que está dizendo a você. 684 00:34:10,785 --> 00:34:12,743 Porque é bom para manter limpo coisas em ordem, 685 00:34:12,743 --> 00:34:16,304 para que o programa sabe exatamente para ser executado. 686 00:34:16,304 --> 00:34:18,929 E acho que posso copiar e colar este em meu navegador real também. 687 00:34:18,929 --> 00:34:21,110 Ele deve estar bem. 688 00:34:21,110 --> 00:34:21,610 Sim. 689 00:34:21,610 --> 00:34:24,330 690 00:34:24,330 --> 00:34:25,989 Uhul. 691 00:34:25,989 --> 00:34:29,380 Então, se todo mundo quer apenas tente criar uma página web, 692 00:34:29,380 --> 00:34:32,169 nós vamos tomar outro dois a três minutos. 693 00:34:32,169 --> 00:34:34,460 Eu só quero ter certeza servidores de todos estão em execução 694 00:34:34,460 --> 00:34:36,941 e todo mundo tem uma idéia de como fazer isso. 695 00:34:36,941 --> 00:34:38,774 Se vocês querem tirar seus computadores. 696 00:34:38,774 --> 00:34:44,630 697 00:34:44,630 --> 00:34:45,635 Ainda não funciona? 698 00:34:45,635 --> 00:34:47,420 >> AUDIÊNCIA: Eu sou apenas [inaudível]. 699 00:34:47,420 --> 00:34:49,838 >> ANDI Peng: Talvez tente atualizar 50 também. 700 00:34:49,838 --> 00:34:51,392 Sim. 701 00:34:51,392 --> 00:34:52,308 AUDIÊNCIA: [inaudível]. 702 00:34:52,308 --> 00:35:17,502 703 00:35:17,502 --> 00:35:18,990 >> ANDI Peng: Sim. 704 00:35:18,990 --> 00:35:23,750 Assim, a maneira que você iniciar um novo servidor web na IDE é apenas 705 00:35:23,750 --> 00:35:27,889 fazer apache50 início espaço espaço dot. 706 00:35:27,889 --> 00:35:30,430 Eu só queria ter certeza servidores de todos estão funcionando OK. 707 00:35:30,430 --> 00:35:31,763 >> AUDIÊNCIA: Aqui, no terminal? 708 00:35:31,763 --> 00:35:33,334 ANDI Peng: Sim. 709 00:35:33,334 --> 00:35:34,250 AUDIÊNCIA: [inaudível]. 710 00:35:34,250 --> 00:35:38,000 711 00:35:38,000 --> 00:35:38,985 >> ANDI Peng: Apache. 712 00:35:38,985 --> 00:35:42,010 Na verdade, eu acho que você é executando alguma coisa já. 713 00:35:42,010 --> 00:35:43,145 Sim, você está, na verdade, executando um servidor diferente. 714 00:35:43,145 --> 00:35:43,830 Sim, você é bom. 715 00:35:43,830 --> 00:35:45,085 Enquanto que está trabalhando, você está OK. 716 00:35:45,085 --> 00:35:45,626 >> AUDIÊNCIA: OK. 717 00:35:45,626 --> 00:35:47,615 ANDI Peng: Há dois maneiras de executar servidores. 718 00:35:47,615 --> 00:35:49,990 Assim, desde que uma das formas está funcionando, está tudo certo. 719 00:35:49,990 --> 00:36:18,470 720 00:36:18,470 --> 00:36:21,680 Vamos tomar mais um minuto apenas a espécie de terminar 721 00:36:21,680 --> 00:36:25,280 os últimos retoques de qualquer página web que vocês queriam fazer. 722 00:36:25,280 --> 00:36:26,830 >> Está todo mundo trabalhando pelo caminho? 723 00:36:26,830 --> 00:36:30,910 Servidores de todos são correndo para além de seu? 724 00:36:30,910 --> 00:36:32,210 Nós vamos descobrir isso. 725 00:36:32,210 --> 00:36:34,137 E HTML de bastante simples. 726 00:36:34,137 --> 00:36:35,220 Então eu acho que estamos todos bem. 727 00:36:35,220 --> 00:36:38,260 728 00:36:38,260 --> 00:36:38,760 Sim. 729 00:36:38,760 --> 00:36:41,070 Eu voltarei. 730 00:36:41,070 --> 00:36:42,797 >> AUDIÊNCIA: [inaudível]. 731 00:36:42,797 --> 00:36:43,380 ANDI Peng: OK. 732 00:36:43,380 --> 00:36:44,770 AUDIÊNCIA: Então é só começou a carregar. 733 00:36:44,770 --> 00:36:45,686 ANDI Peng: Não se preocupe. 734 00:36:45,686 --> 00:36:49,590 735 00:36:49,590 --> 00:36:52,680 Então, HTML, não há código fonte que será on-line após a secção. 736 00:36:52,680 --> 00:36:54,810 Além disso, David tem um conjunto bando online também. 737 00:36:54,810 --> 00:36:58,190 Apenas um tipo de olhar sobre ele para ver como páginas HTML são escritos. 738 00:36:58,190 --> 00:36:59,920 É bastante fácil. 739 00:36:59,920 --> 00:37:03,979 Qualquer coisa que você não sabe, você é bonita muito apenas Google e você é bom. 740 00:37:03,979 --> 00:37:06,270 Eu só quero ter certeza de que seus servidores estão em execução. 741 00:37:06,270 --> 00:37:12,962 742 00:37:12,962 --> 00:37:14,880 >> AUDIÊNCIA: Será que fazer isso muitas vezes? 743 00:37:14,880 --> 00:37:16,421 >> ANDI Peng: Isso nunca aconteceu comigo. 744 00:37:16,421 --> 00:37:18,470 745 00:37:18,470 --> 00:37:20,782 Eu não sabia que poderia até mesmo hibernação. 746 00:37:20,782 --> 00:37:22,516 >> AUDIÊNCIA: [inaudível]. 747 00:37:22,516 --> 00:37:25,140 ANDI Peng: Eu acho que everyone-- mine nunca hibernado antes. 748 00:37:25,140 --> 00:37:26,860 E eu não sei por que. 749 00:37:26,860 --> 00:37:27,566 É estranho. 750 00:37:27,566 --> 00:37:29,310 >> AUDIÊNCIA: [inaudível]. 751 00:37:29,310 --> 00:37:30,643 >> ANDI Peng: é seu hibernando? 752 00:37:30,643 --> 00:37:32,615 753 00:37:32,615 --> 00:37:33,669 >> AUDIÊNCIA: [inaudível]. 754 00:37:33,669 --> 00:37:34,335 ANDI Peng: Sim. 755 00:37:34,335 --> 00:37:39,122 756 00:37:39,122 --> 00:37:39,872 AUDIÊNCIA: É OK. 757 00:37:39,872 --> 00:37:40,622 Portanto, uma vez que é aberto. 758 00:37:40,622 --> 00:37:41,760 ANDI Peng: OK. 759 00:37:41,760 --> 00:37:43,940 Nós vamos lidar com algum servidor questões após secção. 760 00:37:43,940 --> 00:37:44,860 Você deve estar bem. 761 00:37:44,860 --> 00:37:47,950 Embora, você quer ter certeza de que você obtê-los resolvidos antes de sair. 762 00:37:47,950 --> 00:37:49,380 Porque se do seu servidor não correr, então você está 763 00:37:49,380 --> 00:37:52,004 não vai ser capaz de fazer o pset, como qualquer parte do pset. 764 00:37:52,004 --> 00:37:54,200 Então você quer ter a certeza que que está trabalhando. 765 00:37:54,200 --> 00:37:54,831 Legal. 766 00:37:54,831 --> 00:37:55,330 Tudo certo. 767 00:37:55,330 --> 00:37:56,490 Diga adeus gatinhos. 768 00:37:56,490 --> 00:37:59,670 Passei muito tempo procurando que a imagem Gatinho de colocar. 769 00:37:59,670 --> 00:38:02,272 Então, de qualquer maneira. 770 00:38:02,272 --> 00:38:04,950 >> AUDIÊNCIA: [inaudível]. 771 00:38:04,950 --> 00:38:05,770 >> ANDI Peng: Desculpe? 772 00:38:05,770 --> 00:38:07,345 >> AUDIÊNCIA: [inaudível]. 773 00:38:07,345 --> 00:38:08,970 ANDI Peng: Eu acho que é no site. 774 00:38:08,970 --> 00:38:11,064 Como a especificação? 775 00:38:11,064 --> 00:38:12,020 >> AUDIÊNCIA: [inaudível]. 776 00:38:12,020 --> 00:38:16,080 Eu acho que a especificação é apenas line em sete semanas. 777 00:38:16,080 --> 00:38:18,850 Eu acho que é chamado pset6, mesmo embora nós estamos em semana de sete, que 778 00:38:18,850 --> 00:38:19,641 é um bit. 779 00:38:19,641 --> 00:38:23,130 AUDIÊNCIA: Mas eu quero dizer, se você quero olhar at-- se 780 00:38:23,130 --> 00:38:28,666 quer puxar para cima a nossa versão do o web site da nossa sever? 781 00:38:28,666 --> 00:38:31,820 Assim como server.c é o pset, certo? 782 00:38:31,820 --> 00:38:36,514 Se você quiser olhar para isto, como a forma como ele verifica para fora? 783 00:38:36,514 --> 00:38:38,680 ANDI Peng: Ah, então, na verdade, o pset, tudo o que estamos fazendo 784 00:38:38,680 --> 00:38:41,405 aqui é implementing-- aqui, Eu vou passar por cima deste brevemente. 785 00:38:41,405 --> 00:38:44,187 786 00:38:44,187 --> 00:38:47,020 Assim, para todos que está acabado a seção, vocês estão com sorte. 787 00:38:47,020 --> 00:38:49,340 Há muito pouco material para cobrir efectivamente hoje. 788 00:38:49,340 --> 00:38:52,585 >> Eu só vou passar a próxima 20 minutos passando por cima pset ajuda. 789 00:38:52,585 --> 00:38:55,210 Porque há alguns útil funções que ajudarão a sua vida. 790 00:38:55,210 --> 00:38:57,501 E, esperamos, vamos estar fora daqui em como 20 minutos. 791 00:38:57,501 --> 00:38:58,360 ESTÁ BEM. 792 00:38:58,360 --> 00:39:00,252 >> Então pset7 está errado. 793 00:39:00,252 --> 00:39:02,460 Mesmo que nós estamos em semana sete, é realmente pset6. 794 00:39:02,460 --> 00:39:04,220 Eu vou mudar isso. 795 00:39:04,220 --> 00:39:07,550 Tudo o que estamos fazendo em pset6 é a criação de um servidor web. 796 00:39:07,550 --> 00:39:09,010 Isso soa super-assustador. 797 00:39:09,010 --> 00:39:11,010 >> E, especialmente, para aqueles de vocês que já tem 798 00:39:11,010 --> 00:39:14,530 olhou para o código de distribuição, há um monte de código, um monte de código. 799 00:39:14,530 --> 00:39:15,570 Mas é totalmente OK. 800 00:39:15,570 --> 00:39:17,750 Porque o âmago da questão parte da verdade, criando 801 00:39:17,750 --> 00:39:20,140 o servidor é feito por nós. 802 00:39:20,140 --> 00:39:22,090 Tudo o que você está realmente pediu a fazer nesta pset 803 00:39:22,090 --> 00:39:25,350 é só para fazer alguma manipulação de cadeia em arquivo I / O. É, na verdade, 804 00:39:25,350 --> 00:39:27,570 como bastante simples. 805 00:39:27,570 --> 00:39:30,830 >> Então, quando você primeiro baixar isso-- que aqui tem realmente já baixados 806 00:39:30,830 --> 00:39:32,540 o pset e deu uma olhada? 807 00:39:32,540 --> 00:39:33,040 Tudo certo. 808 00:39:33,040 --> 00:39:33,540 Sim. 809 00:39:33,540 --> 00:39:36,042 Não há como 500 linhas de código que você vai ser como, 810 00:39:36,042 --> 00:39:36,750 o que está acontecendo? 811 00:39:36,750 --> 00:39:38,177 E isso é totalmente bom. 812 00:39:38,177 --> 00:39:39,760 Certifique-se de assistir os walk-throughs. 813 00:39:39,760 --> 00:39:41,610 Porque David e-- Eu não sei. 814 00:39:41,610 --> 00:39:43,870 Eu não acho que é Zamyla, este um. 815 00:39:43,870 --> 00:39:47,040 Mas eu acho que algum outro walk-throughs são bastante 816 00:39:47,040 --> 00:39:49,510 útil em termos de apenas deixando você sabe 817 00:39:49,510 --> 00:39:51,780 o que está acontecendo dentro de seu código. 818 00:39:51,780 --> 00:39:53,330 >> E é totalmente OK. 819 00:39:53,330 --> 00:39:57,860 Porque as quatro funções que você é pediu para implementar têm realmente 820 00:39:57,860 --> 00:39:59,720 zero a ver com o servidor real. 821 00:39:59,720 --> 00:40:02,590 Todos eles têm de fazer é apenas analisar diferentes cordas, 822 00:40:02,590 --> 00:40:05,780 pesquisar através de cordas, para garantir que as coisas estão a fazer 823 00:40:05,780 --> 00:40:07,750 o que é suposto fazer. 824 00:40:07,750 --> 00:40:11,200 >> Assim, para esse efeito, existem algumas funções muito, muito úteis, 825 00:40:11,200 --> 00:40:13,630 especialmente para cadeia manipulação, que todos nós deveríamos 826 00:40:13,630 --> 00:40:15,879 passar por cima que eu pensei que seria ser muito útil para vocês 827 00:40:15,879 --> 00:40:19,130 para aprender antes de tentar o pset. 828 00:40:19,130 --> 00:40:23,350 E eles estão todos contidos dentro de sua biblioteca string.h. 829 00:40:23,350 --> 00:40:25,980 Há provavelmente mais útil funções de eu não ter incluído aqui, 830 00:40:25,980 --> 00:40:30,740 porque eu nunca quer usá-los ou talvez eu simplesmente não sabem que eles existem. 831 00:40:30,740 --> 00:40:32,440 >> Sinta-se livre para olhar através student.h. 832 00:40:32,440 --> 00:40:36,460 Porque lá vai ser um monte de funções que são muito úteis. 833 00:40:36,460 --> 00:40:43,050 Então, os seis que eu mais uso no meu pset quando eu estava fazendo isso na semana passada 834 00:40:43,050 --> 00:40:49,620 foram strtok, strchr, strrcher, strstr, strcasecmp, e strcpy. 835 00:40:49,620 --> 00:40:53,060 E assim os dois últimos podem parecer muito familiar para a maioria de vocês. 836 00:40:53,060 --> 00:40:56,910 Caso Str comparar, tudo que faz é comparar cordas para verificá-los para a igualdade, 837 00:40:56,910 --> 00:40:58,110 inclusive o caso. 838 00:40:58,110 --> 00:41:01,430 E strcpy apenas cópias uma seqüência de caracteres em um buffer. 839 00:41:01,430 --> 00:41:04,430 >> E assim os dois devem parecer muito familiar para vocês neste momento. 840 00:41:04,430 --> 00:41:07,100 Porque nós usei-os muito, especialmente para os últimos Série de Exercícios. 841 00:41:07,100 --> 00:41:10,734 Mas os quatro primeiros talvez você ainda não viu até agora. 842 00:41:10,734 --> 00:41:12,400 Mas eu vou apenas passar por eles. 843 00:41:12,400 --> 00:41:15,620 Porque eles estão indo para fazer suas vidas muito, muito fácil não for-- fácil, 844 00:41:15,620 --> 00:41:19,830 mas muito mais fácil para este próximo pset. 845 00:41:19,830 --> 00:41:20,420 >> ESTÁ BEM. 846 00:41:20,420 --> 00:41:27,720 Então char * strtok, esta é a função definição para esta função contida 847 00:41:27,720 --> 00:41:31,050 dentro da cadeia, h biblioteca. 848 00:41:31,050 --> 00:41:34,340 Se lhe for dada uma entrada de char * string, que é apenas uma seqüência, 849 00:41:34,340 --> 00:41:38,220 ou um char constante * deliminator, delim para breve, 850 00:41:38,220 --> 00:41:42,410 tudo o que está a fazer é quebrar o maior string em uma série do que chamamos 851 00:41:42,410 --> 00:41:45,730 tokens separados por um determinado valor. 852 00:41:45,730 --> 00:42:03,340 Assim, em certo sentido, se eu fosse para dar você section.7.php, esta é uma string. 853 00:42:03,340 --> 00:42:09,520 >> De modo que seria se eu fosse para passar neste como meu str, meu char * str, 854 00:42:09,520 --> 00:42:18,870 se o meu deliminator foi ponto, tudo isso gostaria de fazer é a pesquisa através de cordas. 855 00:42:18,870 --> 00:42:22,790 E a primeira vez que vê um ponto, seria apenas voltar para o ponteiro 856 00:42:22,790 --> 00:42:25,830 para o último token encontrado na seqüência antes disso. 857 00:42:25,830 --> 00:42:27,230 Então ele iria bem aqui. 858 00:42:27,230 --> 00:42:30,580 >> E seria apenas dar-me 7.php. 859 00:42:30,580 --> 00:42:34,070 E se eu fosse para chamar a funcionar mais uma vez, 860 00:42:34,070 --> 00:42:37,580 ele me daria apenas o .php. 861 00:42:37,580 --> 00:42:41,540 E assim todo esta função está fazendo é quebrar a seqüência maior 862 00:42:41,540 --> 00:42:44,620 em strings menores dependendo sobre o que você está procurando. 863 00:42:44,620 --> 00:42:46,670 >> E assim, por exemplo, em sua função look-up 864 00:42:46,670 --> 00:42:49,895 se você quiser olhar para o que determinados caracteres acontecer 865 00:42:49,895 --> 00:42:54,280 ou se pontos acontecer ou extensões acontecer, esta função seria bastante útil. 866 00:42:54,280 --> 00:42:57,260 867 00:42:57,260 --> 00:42:59,010 Sim. 868 00:42:59,010 --> 00:42:59,510 Não se preocupe. 869 00:42:59,510 --> 00:43:01,339 Isso tudo vai ser-- sim, qual é? 870 00:43:01,339 --> 00:43:07,087 >> AUDIÊNCIA: Então, na primeira linha, se estivéssemos usando este exemplo, 871 00:43:07,087 --> 00:43:09,504 o que nós inserimos em que? 872 00:43:09,504 --> 00:43:10,170 ANDI Peng: Sim. 873 00:43:10,170 --> 00:43:13,000 874 00:43:13,000 --> 00:43:25,640 Você só iria chamar um strtok delim corda vírgula. 875 00:43:25,640 --> 00:43:30,260 E string é igual a section.7.php. 876 00:43:30,260 --> 00:43:35,244 E então você está delim pode ser igual a apenas dot. 877 00:43:35,244 --> 00:43:36,654 >> AUDIÊNCIA: OK. 878 00:43:36,654 --> 00:43:39,010 >> ANDI Peng: Sim. 879 00:43:39,010 --> 00:43:41,266 Bem desse jeito. 880 00:43:41,266 --> 00:43:43,890 Todas estas funções são bastante semelhante quando passamos por eles. 881 00:43:43,890 --> 00:43:45,514 Eles apenas fazem as coisas um pouco diferentes. 882 00:43:45,514 --> 00:43:49,530 Mas eles estão todos indo para tornar sua vida muito mais fácil. 883 00:43:49,530 --> 00:43:53,940 Segunda função, este é como super, super, super importante, 884 00:43:53,940 --> 00:43:58,254 é as-- realizar-se. 885 00:43:58,254 --> 00:44:07,560 886 00:44:07,560 --> 00:44:08,730 >> Oops. 887 00:44:08,730 --> 00:44:13,810 Pesquisas strchr para o primeiro occurrence-- na verdade, sim. 888 00:44:13,810 --> 00:44:16,385 Strchr é a função que Eu definitivamente apenas passou. 889 00:44:16,385 --> 00:44:18,260 Portanto, ignore o que eu disse para a primeira função. 890 00:44:18,260 --> 00:44:20,980 É realmente chamado strchr. 891 00:44:20,980 --> 00:44:24,840 >> Então, o que aconteceu aqui é se você fosse dada uma seqüência de caracteres em um char c, 892 00:44:24,840 --> 00:44:28,660 seria apenas dar você seja lá o que era. 893 00:44:28,660 --> 00:44:29,230 Sim. 894 00:44:29,230 --> 00:44:33,700 Então, pense nisso como str, que é uma cadeia, e chr como char. 895 00:44:33,700 --> 00:44:38,621 Então tudo que você está tentando fazer é procurar para onde um char está dentro de uma string. 896 00:44:38,621 --> 00:44:41,120 E assim ele procura o primeiro ocorrência do caractere 897 00:44:41,120 --> 00:44:43,601 c na string str. 898 00:44:43,601 --> 00:44:46,463 >> AUDIÊNCIA: [inaudível]. 899 00:44:46,463 --> 00:44:48,380 >> ANDI Peng: Yup. 900 00:44:48,380 --> 00:44:51,230 E então se ele não encontrou -lo, ele vai retornar NULL. 901 00:44:51,230 --> 00:44:54,313 Então, alguma coisa que vai ser muito útil para vocês em fazer o pset 902 00:44:54,313 --> 00:44:59,030 Se, digamos, você estava procurando um extensão como um .docx para um Palavra 903 00:44:59,030 --> 00:45:04,740 documento ou .pdf para um documento PDF, você pode tipo de usá-lo para olhar 904 00:45:04,740 --> 00:45:08,720 para o que for mais tarde cada vez que você ver um ponto, certo? 905 00:45:08,720 --> 00:45:11,880 E assim muito bonito, se você executar que através da função, 906 00:45:11,880 --> 00:45:13,610 se ela retorna NULL, então você sabe que ele 907 00:45:13,610 --> 00:45:17,292 não encontrá-lo ponto, o que significa que esta claramente não é uma extensão de arquivo válido. 908 00:45:17,292 --> 00:45:19,000 Ou se ele retorna algo, então você sabe 909 00:45:19,000 --> 00:45:21,940 ele vai voltar independentemente de na verdade, após a prorrogação. 910 00:45:21,940 --> 00:45:24,190 Portanto, aqueles de vocês que teve comecei a olhar através de pesquisa 911 00:45:24,190 --> 00:45:28,640 e analisar, esta função de Vai ser super útil. 912 00:45:28,640 --> 00:45:32,010 Então, nós estamos indo realmente para demonstrar usando este. 913 00:45:32,010 --> 00:45:36,670 >> Por que vocês não tente escrever um função bool sentença char * s que 914 00:45:36,670 --> 00:45:39,610 apenas retorna true se s é uma sentença e falso caso contrário. 915 00:45:39,610 --> 00:45:44,110 916 00:45:44,110 --> 00:45:46,830 Então dica, você está indo provavelmente para usar strchr. 917 00:45:46,830 --> 00:45:50,420 Ou você só procurar no string para um determinado personagem. 918 00:45:50,420 --> 00:45:54,950 E assim, em uma frase, o que separa uma frase 919 00:45:54,950 --> 00:45:57,510 a partir de um não-sentença, o carácter específico? 920 00:45:57,510 --> 00:45:58,260 AUDIÊNCIA: Um espaço. 921 00:45:58,260 --> 00:45:59,343 ANDI Peng: Um espaço, certo? 922 00:45:59,343 --> 00:46:03,354 E então o que nós, provavelmente, vai quero fazer dentro desta função aqui? 923 00:46:03,354 --> 00:46:04,290 >> AUDIÊNCIA: [inaudível]. 924 00:46:04,290 --> 00:46:07,623 >> ANDI Peng: Nós vamos querer strchr cadeia para a aparência do espaço. 925 00:46:07,623 --> 00:46:11,330 Porque se ele retorna algo, então sabemos que esta deve ser uma frase. 926 00:46:11,330 --> 00:46:14,510 Isso significa que devemos ter um espaço nessa seqüência. 927 00:46:14,510 --> 00:46:17,660 >> Se não há espaço, então nós sabemos que, hey, acho que não é uma cadeia. 928 00:46:17,660 --> 00:46:20,060 Provavelmente é só uma palavra muito longa. 929 00:46:20,060 --> 00:46:23,242 Então, eu vou dar a vocês um casal minutos para escrever esta função. 930 00:46:23,242 --> 00:46:44,398 931 00:46:44,398 --> 00:46:45,874 Sim. 932 00:46:45,874 --> 00:46:47,970 >> AUDIÊNCIA: Você conseguiu esta cadeia do usuário? 933 00:46:47,970 --> 00:46:48,440 >> ANDI Peng: Sim. 934 00:46:48,440 --> 00:46:49,565 Portanto, esta é apenas uma função. 935 00:46:49,565 --> 00:46:54,586 Então, imagine dentro de sua função principal você já have-- vamos aqui. 936 00:46:54,586 --> 00:47:00,040 937 00:47:00,040 --> 00:47:00,540 ESTÁ BEM. 938 00:47:00,540 --> 00:47:05,270 Então eu escrevi este programa onde Eu tenho minha função principal, onde 939 00:47:05,270 --> 00:47:07,432 Acabei de criar duas cordas. 940 00:47:07,432 --> 00:47:09,890 O primeiro é Hi, my name é Andi-- claramente, uma frase. 941 00:47:09,890 --> 00:47:13,240 Meu segundo é apenas Andi, claramente não condenar. 942 00:47:13,240 --> 00:47:18,390 >> E assim eu estou correndo tanto daqueles strings para esta função. 943 00:47:18,390 --> 00:47:20,540 Eu quero que vocês escrevem sentença frio. 944 00:47:20,540 --> 00:47:23,380 E eu estou armazenando esses valores, e depois é só imprimi-las. 945 00:47:23,380 --> 00:47:26,549 Então, pense que o usuário é vai passar uma cadeia. 946 00:47:26,549 --> 00:47:29,590 E então você vai, essencialmente, descobrir se é uma frase ou não 947 00:47:29,590 --> 00:47:31,131 e retornar verdadeiro ou falso em conformidade. 948 00:47:31,131 --> 00:48:41,850 949 00:48:41,850 --> 00:48:45,200 >> Se vocês querem dar um polegares para cima ou heads-up, acene com a cabeça, 950 00:48:45,200 --> 00:48:49,080 é qualquer um está pronto para começar esta, que seria bom. 951 00:48:49,080 --> 00:50:13,570 952 00:50:13,570 --> 00:50:15,200 Talvez mais uns 30 segundos? 953 00:50:15,200 --> 00:50:49,570 954 00:50:49,570 --> 00:50:50,070 Tudo certo. 955 00:50:50,070 --> 00:50:52,870 Vamos ver se você pode tentar escrever esta função. 956 00:50:52,870 --> 00:50:57,480 >> Então pseudo coding-- eu estou indo só para tipo de caminhar por este agora. 957 00:50:57,480 --> 00:51:00,570 Praticamente, nós sabemos o função que precisamos usar. 958 00:51:00,570 --> 00:51:04,390 Vamos chamar essa função em nossa cadeia e procura por um espaço. 959 00:51:04,390 --> 00:51:08,682 Se ela retorna alguma coisa, então devemos sabe que, claramente, esta é uma frase. 960 00:51:08,682 --> 00:51:09,640 Porque não há espaços. 961 00:51:09,640 --> 00:51:10,930 Então vamos retornar true. 962 00:51:10,930 --> 00:51:12,310 Senão, vamos retornar falso. 963 00:51:12,310 --> 00:51:14,393 Alguém quer dar me a primeira linha de código 964 00:51:14,393 --> 00:51:16,890 que na verdade estamos indo usar para escrever isso? 965 00:51:16,890 --> 00:51:19,680 Na verdade, é o mais difícil linha de código também. 966 00:51:19,680 --> 00:51:21,026 Sim. 967 00:51:21,026 --> 00:51:28,942 >> AUDIÊNCIA: Se strtok s-- 968 00:51:28,942 --> 00:51:29,900 ANDI Peng: Apenas strchr. 969 00:51:29,900 --> 00:51:35,354 AUDIÊNCIA: [interpondo VOZES] o espaço não é igual a nulo. 970 00:51:35,354 --> 00:51:38,270 971 00:51:38,270 --> 00:51:40,710 >> ANDI PENG: Cool. 972 00:51:40,710 --> 00:51:41,470 Exatamente certo. 973 00:51:41,470 --> 00:51:43,200 Todos entendem que a primeira linha? 974 00:51:43,200 --> 00:51:46,110 Nós vamos chamar strstr, que é uma função que procura 975 00:51:46,110 --> 00:51:51,830 a string s para o caractere de espaço. 976 00:51:51,830 --> 00:51:56,010 E se ele encontra-lo, ele vai retornar um ponteiro para onde é. 977 00:51:56,010 --> 00:51:58,500 >> Se não encontrá-lo, ele vai retornar NULL. 978 00:51:58,500 --> 00:52:02,530 Então, se ele retorna algo diferente de NULL, em seguida, nós sabemos que encontrou um espaço. 979 00:52:02,530 --> 00:52:03,553 Isso faz sentido? 980 00:52:03,553 --> 00:52:04,090 Legal. 981 00:52:04,090 --> 00:52:04,590 Tudo certo. 982 00:52:04,590 --> 00:52:08,246 Então, se nós sabemos que encontrou uma espaço, o que nós queremos fazer? 983 00:52:08,246 --> 00:52:09,162 AUDIÊNCIA: Retorna verdadeiro. 984 00:52:09,162 --> 00:52:09,787 ANDI Peng: Yup. 985 00:52:09,787 --> 00:52:11,940 Return true. 986 00:52:11,940 --> 00:52:15,034 E então, alguém quer terminar a função para mim? 987 00:52:15,034 --> 00:52:16,300 Sim. 988 00:52:16,300 --> 00:52:19,720 Senão, apenas como aquele. 989 00:52:19,720 --> 00:52:20,780 E tentar compilar este. 990 00:52:20,780 --> 00:52:26,071 991 00:52:26,071 --> 00:52:28,000 >> Aham. 992 00:52:28,000 --> 00:52:33,099 Então, como vocês podem ver a partir do saídas, lembre-se Booleans em C 993 00:52:33,099 --> 00:52:34,390 são sempre expressas em binário. 994 00:52:34,390 --> 00:52:35,100 1 é verdadeiro. 995 00:52:35,100 --> 00:52:36,350 0 é falso. 996 00:52:36,350 --> 00:52:39,720 >> Se fôssemos para executar este função na seqüência um, que 997 00:52:39,720 --> 00:52:42,900 é Oi, meu nome é Andi-- claramente, um sentence-- o resultado 998 00:52:42,900 --> 00:52:45,700 impresso para 1, que é verdadeira. 999 00:52:45,700 --> 00:52:48,420 A segunda, que é apenas uma palavra, resultado impresso 1000 00:52:48,420 --> 00:52:50,630 a 0, o que é falso. 1001 00:52:50,630 --> 00:52:54,820 Todos clara tipo de sobre como esta função foi escrito? 1002 00:52:54,820 --> 00:52:55,800 Sim. 1003 00:52:55,800 --> 00:52:59,770 >> AUDIÊNCIA: Podemos também fazer, em vez de não é igual não, é igual a igual a 0, 1004 00:52:59,770 --> 00:53:03,677 de modo que é igual a? 1005 00:53:03,677 --> 00:53:04,260 ANDI Peng: Não. 1006 00:53:04,260 --> 00:53:07,480 Porque strchr é uma função. 1007 00:53:07,480 --> 00:53:09,940 Eu vou voltar a este. 1008 00:53:09,940 --> 00:53:14,624 Então, qual é o tipo de retorno da nossa função strchr? 1009 00:53:14,624 --> 00:53:15,332 AUDIÊNCIA: Oh, OK. 1010 00:53:15,332 --> 00:53:15,800 Ou NULL. 1011 00:53:15,800 --> 00:53:16,466 >> ANDI Peng: Sim. 1012 00:53:16,466 --> 00:53:20,890 É um char * que me diz que o que quer esta função vai retornar, 1013 00:53:20,890 --> 00:53:22,090 ele vai ser um ponteiro. 1014 00:53:22,090 --> 00:53:24,860 Ou o ponteiro vai ser apontando para onde ele é encontrado, 1015 00:53:24,860 --> 00:53:27,550 ou ele vai voltar um ponteiro para NULL. 1016 00:53:27,550 --> 00:53:30,930 Em qualquer circunstância, ele vai para retornar um ponteiro para alguma coisa. 1017 00:53:30,930 --> 00:53:34,354 >> E por isso, se você fosse para equiparar isto equivale, iguais, 0, 1018 00:53:34,354 --> 00:53:36,020 você está indo para obter um erro de compilação. 1019 00:53:36,020 --> 00:53:37,645 Porque ele vai retornar um ponteiro. 1020 00:53:37,645 --> 00:53:40,240 E você está indo para tentar comparar um ponteiro para um inteiro. 1021 00:53:40,240 --> 00:53:42,515 E o computador não é vai gostar disso. 1022 00:53:42,515 --> 00:53:45,630 Sim exatamente. 1023 00:53:45,630 --> 00:53:46,540 Legal. 1024 00:53:46,540 --> 00:53:47,525 Todo mundo é bom? 1025 00:53:47,525 --> 00:53:55,770 1026 00:53:55,770 --> 00:53:59,770 >> E em segundo lugar, nós estamos indo para ir mais de uma função chamada strstr. 1027 00:53:59,770 --> 00:54:02,020 Não se preocupe se esses funções estão confundindo você. 1028 00:54:02,020 --> 00:54:03,750 Eles estão me confundindo. 1029 00:54:03,750 --> 00:54:07,250 Como tal, vocês poderiam ter visto, todos eles som praticamente o mesmo. 1030 00:54:07,250 --> 00:54:10,400 Assim, sempre que você está confuso, puxar para cima a biblioteca string.h. 1031 00:54:10,400 --> 00:54:13,290 E vocês podem classificar através do qual é qual. 1032 00:54:13,290 --> 00:54:18,910 >> Então strstr, tudo o que faz é procuras uma seqüência de caracteres para uma outra corda toda. 1033 00:54:18,910 --> 00:54:21,980 Então, onde apenas strchr pesquisas para um único caractere, 1034 00:54:21,980 --> 00:54:24,090 Pesquisas strstr para uma cadeia inteira. 1035 00:54:24,090 --> 00:54:30,440 Então, eu queria olhar, eu não sabe, Oi, meu nome é Andi. 1036 00:54:30,440 --> 00:54:32,490 E o nome do meu melhor amigo também é Andi. 1037 00:54:32,490 --> 00:54:37,180 >> Se eu quisesse olhar no presente sentença para toda a palavra de Andi, 1038 00:54:37,180 --> 00:54:39,930 minha agulha seria o que você está procurando. 1039 00:54:39,930 --> 00:54:43,440 E seu palheiro é o que quer você está procurando-o em. 1040 00:54:43,440 --> 00:54:47,050 Então, se você está procurando um palavra específica dentro de uma frase, 1041 00:54:47,050 --> 00:54:48,800 aquela palavra vai ser sua agulha. 1042 00:54:48,800 --> 00:54:51,397 E, em seguida, a própria sentença vai ser o seu palheiro. 1043 00:54:51,397 --> 00:54:53,230 E assim ele só procura a primeira ocorrência 1044 00:54:53,230 --> 00:54:55,063 da agulha cadeia no palheiro string. 1045 00:54:55,063 --> 00:54:57,140 Ele retorna o ponteiro para a primeira ocorrência. 1046 00:54:57,140 --> 00:55:00,510 Exceto, lembre-se, neste caso, é o primeira ocorrência de toda a cadeia 1047 00:55:00,510 --> 00:55:02,510 que você está pesquisando para, não apenas um personagem. 1048 00:55:02,510 --> 00:55:04,676 >> E assim, este é quase o mesma coisa que a função 1049 00:55:04,676 --> 00:55:09,100 acabamos de fazer, apenas com um pouco mais especificidade. 1050 00:55:09,100 --> 00:55:12,730 Porque você está procurando por mais do que apenas um personagem. 1051 00:55:12,730 --> 00:55:16,310 E o uso é exatamente o mesmo como a que acabamos de fazer. 1052 00:55:16,310 --> 00:55:18,070 Todos OK com isso? 1053 00:55:18,070 --> 00:55:20,250 ESTÁ BEM. 1054 00:55:20,250 --> 00:55:23,560 >> Último que nós estamos indo para ir sobre strrchr é, que não é 1055 00:55:23,560 --> 00:55:26,320 confundida com strstr ou com strchr. 1056 00:55:26,320 --> 00:55:27,890 strrchr tem um r extra lá. 1057 00:55:27,890 --> 00:55:29,140 Tenha cuidado quando você está digitando. 1058 00:55:29,140 --> 00:55:33,851 Você pode encontrar-se inclusive um r extra ou não incluindo um R, 1059 00:55:33,851 --> 00:55:35,850 e, em seguida, a sua função não tenho de ir trabalhar. 1060 00:55:35,850 --> 00:55:37,183 E você vai ser confuso. 1061 00:55:37,183 --> 00:55:40,150 Tenha cuidado para que você está soletrando todas estas funções direita. 1062 00:55:40,150 --> 00:55:43,770 >> Então strrchr é exatamente mesma coisa que strchr 1063 00:55:43,770 --> 00:55:47,480 exceto ele procura não é a primeira ocorrência de um personagem específico, 1064 00:55:47,480 --> 00:55:49,350 mas sim a última ocorrência. 1065 00:55:49,350 --> 00:55:52,800 E assim, nesse sentido, é quase exatamente o mesmo. 1066 00:55:52,800 --> 00:55:54,620 Mas, em vez de se mover transmitir em uma corda, 1067 00:55:54,620 --> 00:55:57,230 você vai estar se movendo para trás em uma string. 1068 00:55:57,230 --> 00:56:00,510 Exatamente a mesma coisa, você é apenas pesquisar em uma ordem diferente. 1069 00:56:00,510 --> 00:56:04,690 >> E assim que este poderia ser super, super útil para a sua pesquisa 1070 00:56:04,690 --> 00:56:07,490 função, o primeiro função em seu pset. 1071 00:56:07,490 --> 00:56:12,710 Vamos fingir que é necessário para escrever um função da extensão de vazio em que 1072 00:56:12,710 --> 00:56:17,850 passar uma constante caractere nome do arquivo *, apenas uma seqüência, um nome de arquivo, 1073 00:56:17,850 --> 00:56:21,370 que leva esse nome em e gravuras a extensão do arquivo. 1074 00:56:21,370 --> 00:56:26,520 Assim, por exemplo, se eu fosse para passar na seqüência de pset7.zip, 1075 00:56:26,520 --> 00:56:30,004 ele vai imprimir apenas a extensão, que é .zip. 1076 00:56:30,004 --> 00:56:31,920 E isso iria trabalhar para qualquer tipo de extensão, 1077 00:56:31,920 --> 00:56:38,290 .docx para o Word ou .pdf para um PDF arquivar ou .html para um arquivo HTML. 1078 00:56:38,290 --> 00:56:40,425 Muito bonito, escrever uma função que pode fazer isso. 1079 00:56:40,425 --> 00:56:42,300 Eu estou indo realmente para mudar para o IDE. 1080 00:56:42,300 --> 00:56:54,560 1081 00:56:54,560 --> 00:56:56,740 Não é load-- lá vamos nós. 1082 00:56:56,740 --> 00:57:00,990 >> Então tudo que eu tenho feito aqui é criado um char *, a primeira corda, 1083 00:57:00,990 --> 00:57:01,930 chamado pset7.zip. 1084 00:57:01,930 --> 00:57:04,530 Eu estou indo para fazer zoom. 1085 00:57:04,530 --> 00:57:08,520 Eu criei uma segunda corda chamado finalpaper.docx. 1086 00:57:08,520 --> 00:57:12,649 E escreve-me uma função que, quando chamado vai apenas imprimir 1087 00:57:12,649 --> 00:57:13,690 as extensões de nome de arquivo. 1088 00:57:13,690 --> 00:57:16,702 1089 00:57:16,702 --> 00:57:19,660 Talvez levar alguns minutos para pensar sobre como você está indo para fazer isso. 1090 00:57:19,660 --> 00:57:22,510 Um pouco mais desafiador do que o último, 1091 00:57:22,510 --> 00:57:24,770 mas o uso é quase exatamente o mesmo. 1092 00:57:24,770 --> 00:57:29,670 1093 00:57:29,670 --> 00:57:30,170 Sim. 1094 00:57:30,170 --> 00:57:37,540 Então escreva uma extensão de função chamada que, se eu lhe der o nome de um arquivo, 1095 00:57:37,540 --> 00:57:41,340 se eu fosse para lhe dar pset7.zip-- I quero que você imprimir apenas o .zip. 1096 00:57:41,340 --> 00:57:45,040 1097 00:57:45,040 --> 00:57:49,890 Se eu lhe der gosto finalpaper.docx, apenas imprimir o .docx, 1098 00:57:49,890 --> 00:57:51,538 apenas a extensão de qualquer arquivo. 1099 00:57:51,538 --> 00:59:03,720 1100 00:59:03,720 --> 00:59:07,790 >> Isso na verdade apenas leva duas linhas de código. 1101 00:59:07,790 --> 00:59:10,692 Portanto, tente ver se você talvez possa fazê-lo nisso. 1102 00:59:10,692 --> 00:59:12,400 Na verdade, ele só leva uma linha de código. 1103 00:59:12,400 --> 00:59:14,074 Mas duas linhas é provavelmente mais padrão. 1104 00:59:14,074 --> 00:59:20,408 1105 00:59:20,408 --> 00:59:22,574 Que função são provavelmente vai querer chamar? 1106 00:59:22,574 --> 00:59:25,286 1107 00:59:25,286 --> 00:59:26,260 >> AUDIÊNCIA: strrchr. 1108 00:59:26,260 --> 00:59:27,343 >> ANDI Peng: strrchr, certo. 1109 00:59:27,343 --> 00:59:29,570 Porque nós estamos procurando a partir da esquerda para a direita. 1110 00:59:29,570 --> 00:59:32,107 1111 00:59:32,107 --> 00:59:33,940 Eu não dar a vocês um exemplo como este, 1112 00:59:33,940 --> 00:59:38,870 mas se eu lhe dei um exemplo como www.apple.com e eu só queria 1113 00:59:38,870 --> 00:59:43,005 o .com, seria um exemplo de onde que deseja chamar a última instância 1114 00:59:43,005 --> 00:59:44,630 do período e não o primeiro, certo? 1115 00:59:44,630 --> 00:59:47,470 Se você fosse strchr chamada, ele teria dado-lhe a apple.com. 1116 00:59:47,470 --> 00:59:49,966 >> Se você chamado strrchr-lo, teria lhe dado o .com. 1117 00:59:49,966 --> 00:59:53,062 E por isso tenha cuidado onde ways-- no meu exemplo, 1118 00:59:53,062 --> 00:59:55,520 você poderia provavelmente poderia ter apenas escrito usando strchr, 1119 00:59:55,520 --> 00:59:57,130 uma vez que há apenas um ponto. 1120 00:59:57,130 --> 00:59:59,790 Mas, noutros casos, que pode não ser o caso. 1121 00:59:59,790 --> 01:00:04,960 E assim sempre tentar projetar seu código bem, assim que-- sim? 1122 01:00:04,960 --> 01:00:07,365 >> AUDIÊNCIA: Então, no exemplo, você acabou de dizer, 1123 01:00:07,365 --> 01:00:11,760 quando você strrchr que seria dar-lhe .com ou apenas vir? 1124 01:00:11,760 --> 01:00:13,960 >> ANDI Peng: Seria dar-lhe o .com. 1125 01:00:13,960 --> 01:00:14,794 >> AUDIÊNCIA: OK. 1126 01:00:14,794 --> 01:00:15,460 ANDI Peng: Sim. 1127 01:00:15,460 --> 01:00:18,090 1128 01:00:18,090 --> 01:00:19,744 Ele aponta para onde ele a encontrou. 1129 01:00:19,744 --> 01:00:20,244 Sim. 1130 01:00:20,244 --> 01:00:24,120 1131 01:00:24,120 --> 01:00:25,188 30 segundos, talvez? 1132 01:00:25,188 --> 01:00:25,688 Sim. 1133 01:00:25,688 --> 01:00:56,640 1134 01:00:56,640 --> 01:00:58,500 Todo mundo bom ou talvez um pouco mais de tempo? 1135 01:00:58,500 --> 01:01:01,057 1136 01:01:01,057 --> 01:01:01,640 Show de mãos? 1137 01:01:01,640 --> 01:01:02,320 Mostra de cabeças? 1138 01:01:02,320 --> 01:01:04,801 1139 01:01:04,801 --> 01:01:05,300 Legal. 1140 01:01:05,300 --> 01:01:07,924 Qualquer um quer me dar o primeiro linha de código para este programa? 1141 01:01:07,924 --> 01:01:11,861 1142 01:01:11,861 --> 01:01:12,777 AUDIÊNCIA: [inaudível]. 1143 01:01:12,777 --> 01:01:16,190 1144 01:01:16,190 --> 01:01:20,160 >> ANDI Peng: Então, primeiro de tudo, vamos talvez decompô-lo. 1145 01:01:20,160 --> 01:01:24,370 Então, qual é o tipo de retorno strrchr? 1146 01:01:24,370 --> 01:01:26,150 Vamos voltar. 1147 01:01:26,150 --> 01:01:29,015 strrchr, qual é o tipo de retorno? 1148 01:01:29,015 --> 01:01:29,640 AUDIÊNCIA: Char * 1149 01:01:29,640 --> 01:01:31,270 ANDI Peng: É um char *, certo? 1150 01:01:31,270 --> 01:01:35,760 O que significa que você provavelmente vai querer criar um outro tipo de char * 1151 01:01:35,760 --> 01:01:40,400 de loja sempre que é retornando para, certo? 1152 01:01:40,400 --> 01:01:43,200 Porque se você chamar o strrchr função, 1153 01:01:43,200 --> 01:01:47,030 ele vai dar-lhe um ponteiro para onde quer que ela descobriu que último período, 1154 01:01:47,030 --> 01:01:47,580 certo? 1155 01:01:47,580 --> 01:01:49,913 >> Mas você vai querer armazenar que em algum lugar, certo? 1156 01:01:49,913 --> 01:01:52,612 E assim como podemos codificar isso em nosso programa? 1157 01:01:52,612 --> 01:01:54,320 AUDIÊNCIA: Você faz o char * [inaudível]. 1158 01:01:54,320 --> 01:01:55,240 ANDI Peng: Yep. 1159 01:01:55,240 --> 01:01:57,120 AUDIÊNCIA: [inaudível]. 1160 01:01:57,120 --> 01:01:58,000 ANDI Peng: strrchr. 1161 01:01:58,000 --> 01:01:58,390 Sim. 1162 01:01:58,390 --> 01:01:59,306 Oh, perdeu uma r lá. 1163 01:01:59,306 --> 01:02:02,877 AUDIÊNCIA: O nome do arquivo [inaudível]. 1164 01:02:02,877 --> 01:02:03,376 O que é isso? 1165 01:02:03,376 --> 01:02:04,420 Oh, é apenas s. 1166 01:02:04,420 --> 01:02:04,940 >> ANDI Peng: Oh, é só s. 1167 01:02:04,940 --> 01:02:05,610 Yup, desculpe. 1168 01:02:05,610 --> 01:02:06,330 Meu erro. 1169 01:02:06,330 --> 01:02:08,370 Exemplos não se encontraram. 1170 01:02:08,370 --> 01:02:12,130 >> AUDIÊNCIA: E então dot. 1171 01:02:12,130 --> 01:02:13,970 >> ANDI Peng: Yup. 1172 01:02:13,970 --> 01:02:16,570 Tenha cuidado quando você caras é-- aqui, deixe-me fazer zoom. 1173 01:02:16,570 --> 01:02:22,355 1174 01:02:22,355 --> 01:02:24,400 Aí vamos nós. 1175 01:02:24,400 --> 01:02:26,770 Tenha cuidado quando você caras está digitando, especialmente quando 1176 01:02:26,770 --> 01:02:27,920 você está fazendo apenas um char. 1177 01:02:27,920 --> 01:02:32,480 É realmente fácil de acidentalmente apenas fazer aspas duplas em vez de individual. 1178 01:02:32,480 --> 01:02:35,212 >> Isso não vai funcionar. 1179 01:02:35,212 --> 01:02:36,670 Seu compilador vai reclamar. 1180 01:02:36,670 --> 01:02:38,790 E sua função é só não vai funcionar. 1181 01:02:38,790 --> 01:02:40,540 E por isso tenha cuidado quando você está fazendo as coisas 1182 01:02:40,540 --> 01:02:42,622 com caracteres que é aspas simples. 1183 01:02:42,622 --> 01:02:44,830 E o mesmo acontece com esta linha de código de fazer sentido para todos? 1184 01:02:44,830 --> 01:02:46,810 Estamos criando um ponteiro char *. 1185 01:02:46,810 --> 01:02:50,310 Porque strrchr retornos algo do tipo ponteiro. 1186 01:02:50,310 --> 01:02:53,440 >> E assim nós vamos chamar strchr em s, que é a seqüência, o arquivo 1187 01:02:53,440 --> 01:02:55,140 nome, que estamos passando. 1188 01:02:55,140 --> 01:02:59,750 E nós estamos olhando para o passado instância de um período, que é 1189 01:02:59,750 --> 01:03:02,200 apenas o apóstrofo dot aspas simples. 1190 01:03:02,200 --> 01:03:02,700 Sim. 1191 01:03:02,700 --> 01:03:05,180 >> AUDIÊNCIA: Quando é que vamos usar aspas duplas e quando é que vamos usar aspas simples? 1192 01:03:05,180 --> 01:03:05,320 >> ANDI Peng: Sim. 1193 01:03:05,320 --> 01:03:07,180 Então citações duplas são sempre usado quando você 1194 01:03:07,180 --> 01:03:10,120 ter uma seqüência de mais do que apenas um. 1195 01:03:10,120 --> 01:03:13,070 Então, se você está fazendo strstr, que é o que você 1196 01:03:13,070 --> 01:03:16,320 procurar uma seqüência de caracteres para string, você iria passá-lo entre aspas. 1197 01:03:16,320 --> 01:03:18,070 Mas qualquer momento é apenas um caráter único, 1198 01:03:18,070 --> 01:03:19,870 você quer fazer aspas simples. 1199 01:03:19,870 --> 01:03:22,880 >> É uma coisa boa para se manter em mente. 1200 01:03:22,880 --> 01:03:25,864 Portanto, agora que temos o nosso ponteiro, o que vamos fazer com ele? 1201 01:03:25,864 --> 01:03:27,780 Eu estou pedindo a vocês para imprimi-los, certo? 1202 01:03:27,780 --> 01:03:30,940 Então, [inaudível], você quer dá-me a linha de código? 1203 01:03:30,940 --> 01:03:31,780 >> AUDIÊNCIA: printf-- 1204 01:03:31,780 --> 01:03:32,446 >> ANDI Peng: Sim. 1205 01:03:32,446 --> 01:03:35,344 1206 01:03:35,344 --> 01:03:36,843 AUDIÊNCIA: --você precisa de um lugar titular. 1207 01:03:36,843 --> 01:03:37,340 ANDI Peng: Yup. 1208 01:03:37,340 --> 01:03:38,334 AUDIÊNCIA: Imprimir o titular do lugar. 1209 01:03:38,334 --> 01:03:40,322 Eu não sei o que o lugar é titular, mas apontar para ele. 1210 01:03:40,322 --> 01:03:40,819 >> ESTÁ BEM. 1211 01:03:40,819 --> 01:03:42,027 Vamos pular que, por enquanto, em seguida. 1212 01:03:42,027 --> 01:03:44,556 AUDIÊNCIA: E então comma-- 1213 01:03:44,556 --> 01:03:45,720 >> ANDI Peng: Pointer, certo? 1214 01:03:45,720 --> 01:03:47,970 >> AUDIÊNCIA: Pointer, sim. 1215 01:03:47,970 --> 01:03:51,140 >> ANDI Peng: Assim tipo de uma pergunta capciosa, tem a ver com ponteiros e cordas 1216 01:03:51,140 --> 01:03:53,130 que nós meio que já falamos sobre. 1217 01:03:53,130 --> 01:03:57,766 Que tipo de suporte do lugar nós necessidade de um ponteiro para um char *? 1218 01:03:57,766 --> 01:03:59,574 >> AUDIÊNCIA: [inaudível]. 1219 01:03:59,574 --> 01:04:00,240 ANDI Peng: Sim. 1220 01:04:00,240 --> 01:04:02,522 É mais fácil do que vocês pensam que é. 1221 01:04:02,522 --> 01:04:03,230 AUDIÊNCIA: String? 1222 01:04:03,230 --> 01:04:04,730 ANDI Peng: É apenas uma corda, exatamente. 1223 01:04:04,730 --> 01:04:06,595 Porque lembre-se cordas não existem realmente. 1224 01:04:06,595 --> 01:04:09,430 Um char * é o exato mesma coisa que uma string. 1225 01:04:09,430 --> 01:04:14,461 E isso realmente é o que este s deveria ter sido usado o tempo todo. 1226 01:04:14,461 --> 01:04:14,960 ESTÁ BEM. 1227 01:04:14,960 --> 01:04:17,810 >> Vamos ver se podemos tentar executar este. 1228 01:04:17,810 --> 01:04:19,450 Vamos fazer uma extensão make. 1229 01:04:19,450 --> 01:04:22,710 1230 01:04:22,710 --> 01:04:23,396 Legal. 1231 01:04:23,396 --> 01:04:28,830 Vocês ver como eu passei no psset7.zip e o finalpaper.docx, 1232 01:04:28,830 --> 01:04:32,500 e ele simplesmente imprime o .zip eo .docx? 1233 01:04:32,500 --> 01:04:34,150 Faz sentido? 1234 01:04:34,150 --> 01:04:36,660 >> OK Então eu acho que em seu olhar para cima função em seu pset você é 1235 01:04:36,660 --> 01:04:41,050 vai ser perguntado se a string tem um determinado fim, 1236 01:04:41,050 --> 01:04:42,800 você tem que dar um certo código de erro. 1237 01:04:42,800 --> 01:04:44,820 E assim este será bastante horrível. 1238 01:04:44,820 --> 01:04:47,350 Porque se você pode descobrir o que é a extensão, 1239 01:04:47,350 --> 01:04:49,810 você pode então comparar extensão para ver se ele corresponde up 1240 01:04:49,810 --> 01:04:51,251 com uma certa extensão. 1241 01:04:51,251 --> 01:04:53,250 E então você pode devolvê- uma mensagem de erro, certo? 1242 01:04:53,250 --> 01:04:53,860 Sim. 1243 01:04:53,860 --> 01:04:55,370 >> AUDIÊNCIA: Então nós não tem que adicionar uma ou qualquer coisa? 1244 01:04:55,370 --> 01:04:56,530 O ponteiro irá para as-- 1245 01:04:56,530 --> 01:04:56,660 >> ANDI Peng: Não. 1246 01:04:56,660 --> 01:04:57,530 >> AUDIÊNCIA: --point depois. 1247 01:04:57,530 --> 01:04:58,196 >> ANDI Peng: Sim. 1248 01:04:58,196 --> 01:05:00,650 Ele aponta exatamente para onde a ocorrência foi. 1249 01:05:00,650 --> 01:05:04,010 Assim, por exemplo aqui, nós somos procura para o período. 1250 01:05:04,010 --> 01:05:06,597 Então ele vai para voltar um ponteiro para o período. 1251 01:05:06,597 --> 01:05:08,930 E então ele vai imprimir out começando no período. 1252 01:05:08,930 --> 01:05:10,260 >> Então você não precisa adicionar um. 1253 01:05:10,260 --> 01:05:15,000 Embora, é totalmente bom para, se você não tiver certeza, a apenas um tipo 1254 01:05:15,000 --> 01:05:16,070 de testá-lo você mesmo. 1255 01:05:16,070 --> 01:05:17,590 Construir um programa de exemplo. 1256 01:05:17,590 --> 01:05:20,240 Teste-o você mesmo e ver onde é a impressão. 1257 01:05:20,240 --> 01:05:23,380 Isso também não é uma má maneira de fazê-lo. 1258 01:05:23,380 --> 01:05:26,040 >> Legal. 1259 01:05:26,040 --> 01:05:28,880 E isso é muito bonito tudo Eu tinha para vocês hoje. 1260 01:05:28,880 --> 01:05:31,440 1261 01:05:31,440 --> 01:05:33,300 Nós fizemos um monte de coisas pset hoje. 1262 01:05:33,300 --> 01:05:35,720 Assim, quando em dúvida, como Eu disse, sempre olhar para cima 1263 01:05:35,720 --> 01:05:37,620 a biblioteca string.h para este pset. 1264 01:05:37,620 --> 01:05:40,370 Não vai ser um monte de em que há função pode ser útil. 1265 01:05:40,370 --> 01:05:41,300 Alguns podem não ser útil. 1266 01:05:41,300 --> 01:05:42,133 Eu realmente não sei. 1267 01:05:42,133 --> 01:05:44,370 Wade através dele, há um monte deles. 1268 01:05:44,370 --> 01:05:49,100 strstr, strchr, são strrchr super, super útil, bem como 1269 01:05:49,100 --> 01:05:52,080 os strcpys e strcasecmps que já usei. 1270 01:05:52,080 --> 01:05:56,510 >> É apenas muito de andar com cordas, determinar se eles são iguais, 1271 01:05:56,510 --> 01:05:59,960 recebendo o material fora das cordas, e ser capaz de abrir arquivos corretamente. 1272 01:05:59,960 --> 01:06:02,252 É um monte de arquivo I / O. pset realmente não é tão ruim. 1273 01:06:02,252 --> 01:06:04,210 Você vai ter um olhá-lo, baixá-lo, 1274 01:06:04,210 --> 01:06:05,590 e ver um monte de código. 1275 01:06:05,590 --> 01:06:09,220 Não se preocupe, o código realmente escrever não é mau de todo. 1276 01:06:09,220 --> 01:06:12,870 Se alguém tiver problemas com o seu servidor, venha me ver depois de seção. 1277 01:06:12,870 --> 01:06:16,040 >> Desculpar mais uma vez por não trazendo doces para o Dia das Bruxas. 1278 01:06:16,040 --> 01:06:18,790 Eu não sei o que havia de errado comigo. 1279 01:06:18,790 --> 01:06:20,800 Mas teremos de casal o doce da próxima vez. 1280 01:06:20,800 --> 01:06:25,620 E boa sorte em sua pset esta semana. 1281 01:06:25,620 --> 01:06:27,170 Aham. 1282 01:06:27,170 --> 01:06:28,722