1 00:00:00,000 --> 00:00:00,720 2 00:00:00,720 --> 00:00:03,190 >> DAVID J. MALAN: Antag, at jeg gerne vil at gennemføre et program, der beder 3 00:00:03,190 --> 00:00:06,650 brugeren efter en streng og fortsætter derefter at udnytte deres input, 4 00:00:06,650 --> 00:00:09,790 konvertere eventuelle små bogstaver at de skriver til store bogstaver. 5 00:00:09,790 --> 00:00:11,770 Nå, lad os gå videre og gennemføre programmet. 6 00:00:11,770 --> 00:00:18,760 >> Lad os først omfatte cs50.h fulgt ved bl.a. stdio.h. 7 00:00:18,760 --> 00:00:23,990 Og så vi kan bruge strlen, lad os inkludere string.h. 8 00:00:23,990 --> 00:00:29,860 >> Lad os næste erklære main som int main tomrum og lad os nu gå videre til at bede 9 00:00:29,860 --> 00:00:31,600 brugeren for en streng. 10 00:00:31,600 --> 00:00:34,840 Printf, lad os bede dem for nogle input. 11 00:00:34,840 --> 00:00:36,460 Lad os nu erklære en snor - 12 00:00:36,460 --> 00:00:37,630 vi vil kalde det er - 13 00:00:37,630 --> 00:00:44,010 og gemmer i det resultatet af at kalde Den CS50 biblioteksfunktionen getString. 14 00:00:44,010 --> 00:00:48,850 >> Lad os nu gå videre til at gentage over hver af tegnene i s, kapitalisere 15 00:00:48,850 --> 00:00:50,650 eventuelle små bogstaver, som vi ser. 16 00:00:50,650 --> 00:00:53,630 For int, får jeg 0. 17 00:00:53,630 --> 00:00:58,780 Lad os også erklære n som værende lig strengen længde s, så vi kan 18 00:00:58,780 --> 00:01:03,590 gentage fra i indtil n er længde s, og på hver 19 00:01:03,590 --> 00:01:05,760 iteration tilvækst i. 20 00:01:05,760 --> 00:01:09,970 >> Og derefter inde i denne løkke, så lad os første check er den aktuelle bogstav - 21 00:01:09,970 --> 00:01:12,270 det i'te brev af s, så at sige - 22 00:01:12,270 --> 00:01:14,170 et lille bogstav. 23 00:01:14,170 --> 00:01:23,090 Hvis s beslag i er større end eller lig til små bogstaver a, og det er mindre 24 00:01:23,090 --> 00:01:26,900 end eller lig med små bogstaver z - 25 00:01:26,900 --> 00:01:30,860 Nu, hvis vi ønsker at konvertere et lille brev til store bogstaver, huske først at 26 00:01:30,860 --> 00:01:35,810 i ASCII et lille a er 97 og et stort A er 65 år. 27 00:01:35,810 --> 00:01:41,020 I mellemtiden har en lille b er 98, og et stort B er 66. 28 00:01:41,020 --> 00:01:44,180 >> Hvis vi fortsætter med at se på det mønster, vi vil se, at det lille 29 00:01:44,180 --> 00:01:49,240 breve er altid 32 værdier højere end de store bogstaver. 30 00:01:49,240 --> 00:01:53,490 Så hvis vi ønsker at konvertere fra små bogstaver til store bogstaver, bør det 31 00:01:53,490 --> 00:01:57,210 tilstrækkeligt, virkelig, at trække 32 fra brugerens input. 32 00:01:57,210 --> 00:02:01,330 Eller mere generelt, bare trække det Forskellen mellem et lille a og et 33 00:02:01,330 --> 00:02:02,310 kapital A. 34 00:02:02,310 --> 00:02:03,410 >> Hvordan man kan udtrykke det? 35 00:02:03,410 --> 00:02:04,640 Nå, lad os gøre det i kode. 36 00:02:04,640 --> 00:02:09,960 Printf, citat, citat slut "% c" for at udskrive det aktuelle tegn, efterfulgt af 37 00:02:09,960 --> 00:02:18,500 udskrivning hvad er i s beslag i minus resultatet af at gøre små bogstaver a 38 00:02:18,500 --> 00:02:22,660 minus store bogstaver et semikolon. 39 00:02:22,660 --> 00:02:27,010 Med andre ord er dette parentetiske udtryk, lidt en minus stort A, er 40 00:02:27,010 --> 00:02:29,360 vil vende tilbage til os på slutningen af ​​dag 32. 41 00:02:29,360 --> 00:02:31,230 Men jeg behøver ikke at huske at det er 32.. 42 00:02:31,230 --> 00:02:34,150 Jeg kan gøre det muligt for computeren at finde ud af hvad forskellen mellem små bogstaver 43 00:02:34,150 --> 00:02:35,990 a og kapital A er. 44 00:02:35,990 --> 00:02:39,610 >> I mellemtiden, når jeg ved, at forskellen Jeg kan trække det fra s 45 00:02:39,610 --> 00:02:43,710 beslag i, som vil tage, hvad der er formentlig et lille brev til en 46 00:02:43,710 --> 00:02:48,100 lavere værdi, nemlig en værdi, der kortlægger på et stort tilsvarende. 47 00:02:48,100 --> 00:02:51,240 Lad os nu gemme, kompilere, og køre dette program. 48 00:02:51,240 --> 00:02:57,760 Gør kapitalisere dot skråstreg kapitaliseret. 49 00:02:57,760 --> 00:03:01,290 Og mit input vil være hej. 50 00:03:01,290 --> 00:03:02,920 Og der har vi, hej. 51 00:03:02,920 --> 00:03:05,570 >> Nu er min prompt, ganske vist er lidt grimt, fordi vi har 52 00:03:05,570 --> 00:03:07,810 udeladt en smule udskrivning. 53 00:03:07,810 --> 00:03:09,370 Og lad os gå tilbage og tilføje det. 54 00:03:09,370 --> 00:03:12,890 Nederst i dette program, Jeg er meget enkelt, og i vid udstrækning for 55 00:03:12,890 --> 00:03:18,440 æstetisk formål, kommer til at tilføje printf, citat, citat slut backslash n. 56 00:03:18,440 --> 00:03:22,330 Lad os gem denne fil, rekompilere, genudsendelse. 57 00:03:22,330 --> 00:03:28,090 >> Gør kapitalisere, dot skråstreg kapitalisere. 58 00:03:28,090 --> 00:03:32,540 Igen, for input jeg vil give "hello" i alle små bogstaver, og nu trykke Enter, 59 00:03:32,540 --> 00:03:34,550 og "goddag", langt mere rent udskrives. 60 00:03:34,550 --> 00:03:36,432