1 00:00:00,000 --> 00:00:00,340 2 00:00:00,340 --> 00:00:02,690 >> DAVID Malan: Predpokladajme, že by sme chceli napísať program, ktorý vyzve užívateľa 3 00:00:02,690 --> 00:00:05,100 na reťazec a potom zmobilizuje že reťazec. 4 00:00:05,100 --> 00:00:09,000 Dobre, poďme začať s niektorými zoznámiť Kód deklarovať reťazec s názvom s a 5 00:00:09,000 --> 00:00:11,380 priradením návrat hodnota GetString. 6 00:00:11,380 --> 00:00:14,910 A poďme sa teraz pristúpiť k iterácii znaky v tomto reťazci. 7 00:00:14,910 --> 00:00:16,000 No, ako to urobiť, že? 8 00:00:16,000 --> 00:00:19,350 Ukazuje sa, že reťazec je len postupnosť znakov, ale 9 00:00:19,350 --> 00:00:23,320 správne, reťazec je pole znaky, čo znamená, že môžeme použiť 10 00:00:23,320 --> 00:00:27,590 hranatá zátvorka zápis do registra do reťazec a dostať na individuálne 11 00:00:27,590 --> 00:00:28,680 znaky. 12 00:00:28,680 --> 00:00:30,980 >> Inými slovami, môžeme postupujte podľa nasledujúcich pokynov. 13 00:00:30,980 --> 00:00:36,730 Pre int, aj dostane 0, a n dostane, povedať, dĺžku s použitím 14 00:00:36,730 --> 00:00:37,530 naša funkcia [? miešať?] 15 00:00:37,530 --> 00:00:38,630 [? linka,?] 16 00:00:38,630 --> 00:00:40,450 i je menšie ako n i + +. 17 00:00:40,450 --> 00:00:45,290 Inými slovami, s tejto slučky, sa bude iterovat cez všetky n listy 18 00:00:45,290 --> 00:00:46,670 v reťazci s. 19 00:00:46,670 --> 00:00:51,680 A v rámci tejto slučky, budem skontrolujte, ak je i-ty znak v s 20 00:00:51,680 --> 00:00:57,630 väčšie ako alebo rovnajúcu sa malá, a i-ty znak je menší ako alebo 21 00:00:57,630 --> 00:01:02,370 rovná malé písmená c, potom chcem, aby pokračovať využiť ten list. 22 00:01:02,370 --> 00:01:08,030 Inými slovami, chcem tlačiť% c ako zástupný symbol a náhrada v pre 23 00:01:08,030 --> 00:01:11,120 tejto zástupný symbol s držiak i 24 00:01:11,120 --> 00:01:14,390 >> Ale potom som potrebné previesť s držiak aj na veľké písmená. 25 00:01:14,390 --> 00:01:18,930 Ak to chcete vykonať, môžem jednoducho odčítať bez ohľadu na rozdiel medzi 26 00:01:18,930 --> 00:01:24,120 malá a kapitálu A. No, myslím, vlastne si spomínam, že kapitál je 27 00:01:24,120 --> 00:01:27,160 65 v ASCII, a veľká 97. 28 00:01:27,160 --> 00:01:29,210 Takže rozdiel je technicky 32. 29 00:01:29,210 --> 00:01:31,620 Tak som mohol len pevný kód 32 tu. 30 00:01:31,620 --> 00:01:33,870 Ale ja nemusí nutne Pamätám si tie čísla. 31 00:01:33,870 --> 00:01:37,250 >> A navyše, čo keď líšiť v závislosti na počítači? 32 00:01:37,250 --> 00:01:38,520 S najväčšou pravdepodobnosťou to nie sú. 33 00:01:38,520 --> 00:01:42,460 Faktom ale zostáva, že môžem ešte zovšeobecniť, že aritmetický výraz 34 00:01:42,460 --> 00:01:46,550 , Ako len to bez ohľadu na rozdiel medzi malými písmenami A a kapitálu 35 00:01:46,550 --> 00:01:50,880 je to, čo chcem odpočítať preč od to najmä malé písmeno. 36 00:01:50,880 --> 00:01:54,500 >> Teraz, ak tento konkrétny list nie je malá, som jednoducho 37 00:01:54,500 --> 00:01:56,620 chcete vytlačiť. 38 00:01:56,620 --> 00:02:01,110 printf,% c ako môj zástupný symbol, s držiak i 39 00:02:01,110 --> 00:02:05,150 V spodnej časti tohto programu, poďme jednoducho vytlačiť nový riadok, takže my 40 00:02:05,150 --> 00:02:07,520 sa zobrazí výzva na nový Rad jeho vlastné. 41 00:02:07,520 --> 00:02:11,540 >> Poďme sa teraz skompilovať tento program s make capitalize0. 42 00:02:11,540 --> 00:02:13,900 Poďme spustiť s capitalize0. 43 00:02:13,900 --> 00:02:17,190 A poďme napíšte slovo, ako ahoj vo všetkých malými písmenami. 44 00:02:17,190 --> 00:02:19,960 Ja sa vrátim HELLO veľkými písmenami ako sa očakávalo. 45 00:02:19,960 --> 00:02:25,210 Ale poďme skúsiť ešte jeden test, tentoraz s mojím vlastným menom, D - V-I-D, ale s 46 00:02:25,210 --> 00:02:28,170 prvý D aktivované, iba v Prípad som spackal niečo hore 47 00:02:28,170 --> 00:02:29,430 s tou prvou char. 48 00:02:29,430 --> 00:02:34,250 Zadajte, a D - V-I-D veľkými písmenami sa vytlačí rovnako. 49 00:02:34,250 --> 00:02:36,873