1 00:00:00,000 --> 00:00:00,720 2 00:00:00,720 --> 00:00:03,190 >> DAVID J. MALAN: Angenommen, ich möchte ein Programm, das fordert Umsetzung 3 00:00:03,190 --> 00:00:06,650 der Benutzer eine Zeichenfolge und dann schreitet um ihren Beitrag zu nutzen, 4 00:00:06,650 --> 00:00:09,790 Umwandlung keine Kleinbuchstaben geben, dass sie in Großbuchstaben. 5 00:00:09,790 --> 00:00:11,770 Nun, lasst uns weitermachen und Umsetzung dieses Programms. 6 00:00:11,770 --> 00:00:18,760 >> Lassen Sie uns zuerst gefolgt sind cs50.h von stdio.h sind. 7 00:00:18,760 --> 00:00:23,990 Und damit wir strlen verwenden können, wir sind string.h. 8 00:00:23,990 --> 00:00:29,860 >> Lassen Sie uns erklären nächsten Haupt als int main nichtig und lassen Sie uns nun daran gehen, veran 9 00:00:29,860 --> 00:00:31,600 der Benutzer eine Zeichenfolge. 10 00:00:31,600 --> 00:00:34,840 Printf, lassen Sie uns auffordern, für einige Eingang. 11 00:00:34,840 --> 00:00:36,460 Lassen Sie uns jetzt erklären, einen String - 12 00:00:36,460 --> 00:00:37,630 wir nennen es s - 13 00:00:37,630 --> 00:00:44,010 und speichern Sie es in das Ergebnis des Aufrufs der CS50-Bibliothek-Funktion GetString. 14 00:00:44,010 --> 00:00:48,850 >> Lassen Sie uns nun damit fortfahren, über jeden laufen der Zeichen in s, Kapital 15 00:00:48,850 --> 00:00:50,650 alle Kleinbuchstaben, die wir sehen. 16 00:00:50,650 --> 00:00:53,630 Für int, bekomme ich null. 17 00:00:53,630 --> 00:00:58,780 Lassen Sie uns auch erklären, n als gleich der String-Länge von s, so dass wir 18 00:00:58,780 --> 00:01:03,590 laufen von i bis n, die Länge s und auf jeder 19 00:01:03,590 --> 00:01:05,760 Iteration i Schritt. 20 00:01:05,760 --> 00:01:09,970 >> Und dann in dieser Schleife, lassen erste Prüfung ist der aktuelle Buchstabe - 21 00:01:09,970 --> 00:01:12,270 der i-te Schreiben von s sozusagen - 22 00:01:12,270 --> 00:01:14,170 ein Kleinbuchstabe. 23 00:01:14,170 --> 00:01:23,090 Wenn s Halterung i größer als oder gleich ist ein Kleinbuchstaben, und es ist weniger 24 00:01:23,090 --> 00:01:26,900 oder gleich Klein z - 25 00:01:26,900 --> 00:01:30,860 Nun, wenn wir einen Klein konvertieren möchten Schreiben in Großbuchstaben, erinnern zunächst, dass 26 00:01:30,860 --> 00:01:35,810 in ASCII ein Klein a 97 und ein großes A ist 65 Jahre. 27 00:01:35,810 --> 00:01:41,020 Unterdessen ist ein Klein b 98, und ein Groß B 66 ist. 28 00:01:41,020 --> 00:01:44,180 >> Wenn wir weiterhin in diesem Muster aussehen, wir werden sehen, dass die Klein 29 00:01:44,180 --> 00:01:49,240 Briefe sind immer 32 Werte höher als die Großbuchstaben. 30 00:01:49,240 --> 00:01:53,490 Also, wenn wir von Klein konvertieren möchten in Großbuchstaben, sollte es 31 00:01:53,490 --> 00:01:57,210 ausreichen, wirklich, zu subtrahieren 32 aus der Eingabe des Benutzers. 32 00:01:57,210 --> 00:02:01,330 Oder allgemeiner, subtrahieren Sie einfach, dass Differenz zwischen einem Klein a und a 33 00:02:01,330 --> 00:02:02,310 Kapital A. 34 00:02:02,310 --> 00:02:03,410 >> Wie man das ausdrücken? 35 00:02:03,410 --> 00:02:04,640 Nun, machen wir es im Code. 36 00:02:04,640 --> 00:02:09,960 Printf, Zitat, Zitat Ende "% c", um die Druck das aktuelle Zeichen, gefolgt von 37 00:02:09,960 --> 00:02:18,500 Druck, was auch immer in s i minus Klammer ist das Ergebnis tun, ein Klein 38 00:02:18,500 --> 00:02:22,660 minus Großbuchstaben A Semikolon. 39 00:02:22,660 --> 00:02:27,010 In anderen Worten, diese in Klammern Ausdruck, wenig ein Minus großen A, 40 00:02:27,010 --> 00:02:29,360 gehen, um zu uns zurück das Ende der 32 Tage. 41 00:02:29,360 --> 00:02:31,230 Aber ich habe nicht daran zu erinnern, dass es 32. 42 00:02:31,230 --> 00:02:34,150 Ich kann damit der Computer, um herauszufinden, was der Unterschied zwischen Klein 43 00:02:34,150 --> 00:02:35,990 ein-und Kapital A ist. 44 00:02:35,990 --> 00:02:39,610 >> Inzwischen weiß ich, einmal diesen Unterschied, Ich kann es von s subtrahieren 45 00:02:39,610 --> 00:02:43,710 Halterung i, die stattfinden wird, was vermutlich ein Kleinbuchstabe, ein 46 00:02:43,710 --> 00:02:48,100 niedrigeren Wert, nämlich ein Wert, der Karten auf einen entsprechenden Großbuchstaben. 47 00:02:48,100 --> 00:02:51,240 Lassen Sie uns nun speichern, übersetzen, und führen Sie dieses Programm. 48 00:02:51,240 --> 00:02:57,760 Machen Sie profitieren dot Strich aktiviert. 49 00:02:57,760 --> 00:03:01,290 Und meine Eingabe wird hallo. 50 00:03:01,290 --> 00:03:02,920 Und da haben wir, hallo. 51 00:03:02,920 --> 00:03:05,570 >> Jetzt ist meine Aufforderung, zugegeben, ist ein bisschen hässlich, denn wir haben 52 00:03:05,570 --> 00:03:07,810 weggelassen ein bisschen Druck. 53 00:03:07,810 --> 00:03:09,370 Und lassen Sie uns zurückgehen und hinzufügen, dass. 54 00:03:09,370 --> 00:03:12,890 Am unteren Rand des Programms, Ich bin sehr einfach und weitgehend für 55 00:03:12,890 --> 00:03:18,440 ästhetischen Zweck, geht auf printf hinzufügen Zitat unquote Backslash n. 56 00:03:18,440 --> 00:03:22,330 Lassen Sie uns diese Datei erneut speichern, neu kompilieren, Wiederholung. 57 00:03:22,330 --> 00:03:28,090 >> Stellen Sie nutzen, profitieren dot Schrägstrich. 58 00:03:28,090 --> 00:03:32,540 Auch für die Eingabe werde ich sorgen "Hallo" in Kleinbuchstaben und jetzt drücken Sie die Eingabetaste, 59 00:03:32,540 --> 00:03:34,550 und "hallo", viel mehr sauber gedruckt. 60 00:03:34,550 --> 00:03:36,432