1 00:00:00,000 --> 00:00:00,720 2 00:00:00,720 --> 00:00:03,190 >> David J. MALAN: Ipagpalagay na gusto ko ipatupad ang isang programa na prompt 3 00:00:03,190 --> 00:00:06,650 ang gumagamit para sa isang string at pagkatapos ay naaayos upang sulatin sa malaking titik ang kanilang mga input, 4 00:00:06,650 --> 00:00:09,790 nagko-convert ang anumang mga maliliit na titik na-type sila sa uppercase. 5 00:00:09,790 --> 00:00:11,770 Well, sabihin sige at ipatupad ang programang iyon. 6 00:00:11,770 --> 00:00:18,760 >> Kasama ni unang sinundan cs50.h Hayaan sa pamamagitan ng isama stdio.h. 7 00:00:18,760 --> 00:00:23,990 At nang sa gayon ay maaari naming gamitin strlen, Kasama ni string.h ipaalam. 8 00:00:23,990 --> 00:00:29,860 >> Ng susunod na idedeklara pangunahing bilang int pangunahing walang bisa Hayaan at sabihin ngayon magpatuloy upang i-prompt 9 00:00:29,860 --> 00:00:31,600 ang gumagamit para sa isang string. 10 00:00:31,600 --> 00:00:34,840 Printf, i-prompt ng mga ito hayaan para sa ilang mga input. 11 00:00:34,840 --> 00:00:36,460 Ngayon ipinapahayag ng isang string ipaalam - 12 00:00:36,460 --> 00:00:37,630 ipapakita namin tumawag ito ay s - 13 00:00:37,630 --> 00:00:44,010 at mag-store sa loob nito ang resulta ng pagtawag ang pag-andar GetString cs50 library. 14 00:00:44,010 --> 00:00:48,850 >> Ni ngayong magpatuloy upang umulit sa ibabaw ng bawat Hayaan ng ang mga character sa s, capitalize 15 00:00:48,850 --> 00:00:50,650 anumang mga maliliit na mga titik na nakikita namin. 16 00:00:50,650 --> 00:00:53,630 Para sa int, kumuha ng i 0. 17 00:00:53,630 --> 00:00:58,780 Ipinahahayag din ni n bilang sa pagiging patas sa Hayaan ang haba ng string ng mga gayon na aming makakaya 18 00:00:58,780 --> 00:01:03,590 umulit mula i up hanggang n, ang haba ng s, at sa bawat 19 00:01:03,590 --> 00:01:05,760 iteration paglakas i. 20 00:01:05,760 --> 00:01:09,970 >> At pagkatapos ay sa loob ng loop na ito, sabihin unang check ang kasalukuyang liham - 21 00:01:09,970 --> 00:01:12,270 ang mga i-ika titik ng s, kaya upang makipag-usap - 22 00:01:12,270 --> 00:01:14,170 isang maliit na mga titik. 23 00:01:14,170 --> 00:01:23,090 Kung bracket s i ay mas malaki kaysa sa o katumbas ng sa Maliit na titik a, at ito ay mas mababa 24 00:01:23,090 --> 00:01:26,900 sa o katumbas ng lowercase z - 25 00:01:26,900 --> 00:01:30,860 Ngayon kung gusto naming i-convert ang isang maliit na titik sulat sa uppercase, isipin ang unang na 26 00:01:30,860 --> 00:01:35,810 sa ASCII isang lowercase isang ay 97 at isang uppercase A ay 65. 27 00:01:35,810 --> 00:01:41,020 Samantala, ang isang maliit na mga b ay 98, at isang uppercase B ay 66. 28 00:01:41,020 --> 00:01:44,180 >> Kung patuloy namin upang tumingin sa pattern na, ipapakita namin makita na ang maliit na mga 29 00:01:44,180 --> 00:01:49,240 mga titik ay palaging 32 mga halaga na mas mataas kaysa sa malalaking titik. 30 00:01:49,240 --> 00:01:53,490 Kaya kung gusto naming mag-convert mula lowercase sa uppercase, dapat ito 31 00:01:53,490 --> 00:01:57,210 magkasiya, talaga, upang ibawas 32 mula sa input ng user. 32 00:01:57,210 --> 00:02:01,330 O kaya mas pangkalahatang paraan, ibawas lamang na pagkakaiba sa pagitan ng isang lowercase isang at isang 33 00:02:01,330 --> 00:02:02,310 capital A. 34 00:02:02,310 --> 00:02:03,410 >> Paano upang ipahayag na? 35 00:02:03,410 --> 00:02:04,640 Well, gawin ni ito sa code ipaalam. 36 00:02:04,640 --> 00:02:09,960 Printf, quote, magpanipi "% c" upang mag-print ang kasalukuyang karakter, na sinusundan ng 37 00:02:09,960 --> 00:02:18,500 pagpi-print ang kahit anong sa bracket s i minus ang resulta ng paggawa ng maliit na mga isang 38 00:02:18,500 --> 00:02:22,660 minus uppercase Ang isang tuldok-kuwit. 39 00:02:22,660 --> 00:02:27,010 Sa ibang salita, ito parenthetical expression, kaunti ng minus malaking A, ay 40 00:02:27,010 --> 00:02:29,360 pagpunta upang bumalik sa amin sa ang pagtatapos ng araw 32. 41 00:02:29,360 --> 00:02:31,230 Ngunit hindi ko kailangang tandaan na ito ay 32. 42 00:02:31,230 --> 00:02:34,150 Maaari ko bang payagan ang computer upang malaman kung ano ang pagkakaiba sa pagitan ng lowercase 43 00:02:34,150 --> 00:02:35,990 isang at kabisera A ay. 44 00:02:35,990 --> 00:02:39,610 >> Samantala, sa sandaling alam ko na pagkakaiba, Maaari ko bang ibawas ito mula s 45 00:02:39,610 --> 00:02:43,710 bracket i, na kung saan ay magdadala sa kung ano ang siguro isang lowercase na titik sa isang 46 00:02:43,710 --> 00:02:48,100 mas mababang halaga, lalo isang halaga na maps papunta sa isang uppercase katumbas. 47 00:02:48,100 --> 00:02:51,240 Hayaan ang i-save ngayon, ang sumulat ng libro, at patakbuhin ang program na ito. 48 00:02:51,240 --> 00:02:57,760 Gumawa ng sulatin sa malaking titik tuldok slash sa malaking titik. 49 00:02:57,760 --> 00:03:01,290 At ang aking input ay magiging kumusta. 50 00:03:01,290 --> 00:03:02,920 At doon mayroon kami, kumusta. 51 00:03:02,920 --> 00:03:05,570 >> Ngayon ang aking prompt, tinatanggap na, ay medyo mainit ang ulo, dahil hindi namin 52 00:03:05,570 --> 00:03:07,810 tinanggal isa bit ng pag-print. 53 00:03:07,810 --> 00:03:09,370 At ni bumalik at magdagdag ng mga na ipaalam. 54 00:03:09,370 --> 00:03:12,890 Sa pinakailalim ng programang ito, Ako'y sobrang simple, at higit sa lahat para sa 55 00:03:12,890 --> 00:03:18,440 Aesthetic layunin, pagpunta sa magdagdag ng printf, quote, magpanipi backslash n. 56 00:03:18,440 --> 00:03:22,330 Ni resave ang file na ito Hayaan, mag-recompile, muling palabas ng pelikula. 57 00:03:22,330 --> 00:03:28,090 >> Gumawa ng sulatin sa malaking titik, tuldok slash sulatin sa malaking titik. 58 00:03:28,090 --> 00:03:32,540 Muli, para sa input na makikita ko bang bigyan ang "kumusta" sa lahat ng mas mababang kaso at ngayon pindutin ang Enter, 59 00:03:32,540 --> 00:03:34,550 at "kumusta," mas nang malinis na-print. 60 00:03:34,550 --> 00:03:36,432