1 00:00:00,000 --> 00:00:00,720 2 00:00:00,720 --> 00:00:03,190 >> DAVID J. Malan: Dejme tomu, že bych chtěl realizovat program, který vyzve 3 00:00:03,190 --> 00:00:06,650 uživatel na řetězec a pak pokračuje využít jejich přínos, 4 00:00:06,650 --> 00:00:09,790 Převod jakékoli malá písmena že typ na velká písmena. 5 00:00:09,790 --> 00:00:11,770 Dobře, pojďme do toho a provádění tohoto programu. 6 00:00:11,770 --> 00:00:18,760 >> Pojďme si nejprve jsou následně cs50.h které zahrnují stdio.h. 7 00:00:18,760 --> 00:00:23,990 A tak, že můžeme použít strlen, pojďme patří string.h. 8 00:00:23,990 --> 00:00:29,860 >> Pojďme další deklarovat hlavní jako int main prázdno a pojďme nyní pokračovat na výzvu 9 00:00:29,860 --> 00:00:31,600 uživatel na provázku. 10 00:00:31,600 --> 00:00:34,840 Printf, pojďme vyzve je pro nějaký vstup. 11 00:00:34,840 --> 00:00:36,460 Nyní pojďme deklarovat řetězec - 12 00:00:36,460 --> 00:00:37,630 zavoláme je to - 13 00:00:37,630 --> 00:00:44,010 a uložit do ní výsledek volání CS50 knihovna funkce GetString. 14 00:00:44,010 --> 00:00:48,850 >> Pojďme se nyní přistoupit k iteraci každý z charakterů v s, vydělávat 15 00:00:48,850 --> 00:00:50,650 nějaké malá písmena, které vidíme. 16 00:00:50,650 --> 00:00:53,630 Pro int, i se 0. 17 00:00:53,630 --> 00:00:58,780 Pojďme se také prohlásit n jako je rovna délka řetězce s, takže můžeme 18 00:00:58,780 --> 00:01:03,590 iterovat od i až do n, délka S, a na každém 19 00:01:03,590 --> 00:01:05,760 iterace přírůstek i. 20 00:01:05,760 --> 00:01:09,970 >> A pak se uvnitř této smyčky, pojďme První kontrola je aktuální písmeno - 21 00:01:09,970 --> 00:01:12,270 i-tý písmeno s, abych tak řekl - 22 00:01:12,270 --> 00:01:14,170 malé písmeno. 23 00:01:14,170 --> 00:01:23,090 Je-li s konzola i je větší než nebo rovno na malá písmena, a to je méně 24 00:01:23,090 --> 00:01:26,900 než nebo rovnající se malým Z - 25 00:01:26,900 --> 00:01:30,860 Nyní, pokud chceme převést na malá písmena Dopis na velká písmena, připomenout zaprvé, že 26 00:01:30,860 --> 00:01:35,810 v ASCII malá 97 a velká 65. 27 00:01:35,810 --> 00:01:41,020 Mezitím, malými písmeny b je 98, a velká písmena B je 66. 28 00:01:41,020 --> 00:01:44,180 >> Pokud budeme i nadále hledat v této struktuře, uvidíme, že malá 29 00:01:44,180 --> 00:01:49,240 písmena jsou vždy 32 vyšších hodnot než velká písmena. 30 00:01:49,240 --> 00:01:53,490 Takže pokud chceme převést z malých písmen na velká písmena, by měl 31 00:01:53,490 --> 00:01:57,210 stačí, opravdu, odečíst 32 od vstupu uživatele. 32 00:01:57,210 --> 00:02:01,330 Nebo obecněji, jen odečíst, že Rozdíl mezi malými písmeny A a A 33 00:02:01,330 --> 00:02:02,310 kapitál A. 34 00:02:02,310 --> 00:02:03,410 >> Jak vyjádřit, že? 35 00:02:03,410 --> 00:02:04,640 Dobře, pojďme to udělat v kódu. 36 00:02:04,640 --> 00:02:09,960 Printf, citace, konec citátu "% c" k tisku aktuální znak, následovaný 37 00:02:09,960 --> 00:02:18,500 tisk bez ohledu na to v s držákem i mínus Výsledkem dělá malá písmena A 38 00:02:18,500 --> 00:02:22,660 minus velká písmena A středník. 39 00:02:22,660 --> 00:02:27,010 Jinými slovy, tento závorkách výraz, trochu minus velký, je 40 00:02:27,010 --> 00:02:29,360 chystá se vrátit k nám na konec dne 32.. 41 00:02:29,360 --> 00:02:31,230 Ale já nemusím pamatovat že je to 32. 42 00:02:31,230 --> 00:02:34,150 Nemohu dovolit počítač přijít na to, , jaký je rozdíl mezi malými písmeny 43 00:02:34,150 --> 00:02:35,990 a kapitálu je. 44 00:02:35,990 --> 00:02:39,610 >> Mezitím, když jsem vědět, že rozdíl, I to může odečíst od s 45 00:02:39,610 --> 00:02:43,710 držák i, který bude mít to, co je pravděpodobně malé písmeno na 46 00:02:43,710 --> 00:02:48,100 nižší hodnota, a to hodnota, která mapuje na s velkým ekvivalent. 47 00:02:48,100 --> 00:02:51,240 Pojďme nyní uložit, zkompilovat, a spustit tento program. 48 00:02:51,240 --> 00:02:57,760 Ujistěte se vydělávat tečka lomítko aktivovány. 49 00:02:57,760 --> 00:03:01,290 A můj vstup bude ahoj. 50 00:03:01,290 --> 00:03:02,920 A tady to máme, ahoj. 51 00:03:02,920 --> 00:03:05,570 >> Teď moje výzva, pravda, je trochu ošklivá, protože máme 52 00:03:05,570 --> 00:03:07,810 vynechat jeden bit tisku. 53 00:03:07,810 --> 00:03:09,370 A vraťme se a dodává, že. 54 00:03:09,370 --> 00:03:12,890 Na samém konci tohoto programu, Jsem velmi jednoduše, a do značné míry na 55 00:03:12,890 --> 00:03:18,440 estetický účel, přidáme printf, citace, konec citátu zpětné lomítko n. 56 00:03:18,440 --> 00:03:22,330 Pojďme znovu uložit tento soubor, překompilovat, opakování. 57 00:03:22,330 --> 00:03:28,090 >> Ujistěte se vydělávat, tečka lomítko vydělat. 58 00:03:28,090 --> 00:03:32,540 Opět platí, že pro vstup budu poskytovat "ahoj" ve všech malými písmeny a nyní stiskněte klávesu Enter, 59 00:03:32,540 --> 00:03:34,550 a "ahoj", mnohem čistěji vytisknout. 60 00:03:34,550 --> 00:03:36,432