1
00:00:00,000 --> 00:00:00,720

2
00:00:00,720 --> 00:00:03,190
>> DAVID J. MALAN: Ας υποθέσουμε ότι θα ήθελα
να εφαρμόσει ένα πρόγραμμα που ζητά

3
00:00:03,190 --> 00:00:06,650
ο χρήστης για μια σειρά και στη συνέχεια προχωρά
να αξιοποιήσει τη συμβολή τους,

4
00:00:06,650 --> 00:00:09,790
μετατροπή τυχόν πεζά γράμματα
ότι πληκτρολογείτε με κεφαλαία γράμματα.

5
00:00:09,790 --> 00:00:11,770
Λοιπόν, ας πάμε μπροστά και
υλοποίηση του προγράμματος.

6
00:00:11,770 --> 00:00:18,760
>> Ας πρώτα περιλαμβάνουν cs50.h ακολουθείται
από περιλαμβάνουν stdio.h.

7
00:00:18,760 --> 00:00:23,990
Και έτσι ώστε να μπορούμε να χρησιμοποιήσουμε strlen,
ας περιλαμβάνουν string.h.

8
00:00:23,990 --> 00:00:29,860
>> Ας επόμενη κηρύξει ως int main κενό
και ας προχωρήσουμε τώρα να παρακινήσει

9
00:00:29,860 --> 00:00:31,600
ο χρήστης για ένα string.

10
00:00:31,600 --> 00:00:34,840
Printf, ας τους προτρέψει
για κάποια είσοδο.

11
00:00:34,840 --> 00:00:36,460
Τώρα, ας κηρύξει μια σειρά -

12
00:00:36,460 --> 00:00:37,630
θα τον λέμε s -

13
00:00:37,630 --> 00:00:44,010
και αποθηκεύστε σε αυτό το αποτέλεσμα της κλήσης
η λειτουργία της βιβλιοθήκης CS50 GetString.

14
00:00:44,010 --> 00:00:48,850
>> Ας προχωρήσουμε τώρα για να μετακινηθείτε πάνω στο καθένα
από τους χαρακτήρες στο s, αξιοποιώντας

15
00:00:48,850 --> 00:00:50,650
τυχόν πεζά γράμματα που βλέπουμε.

16
00:00:50,650 --> 00:00:53,630
Για int, παίρνω 0.

17
00:00:53,630 --> 00:00:58,780
Ας επίσης να δηλώσει n είναι ίση
το μήκος της συμβολοσειράς s έτσι ώστε να μπορούμε

18
00:00:58,780 --> 00:01:03,590
επαναλάβει από i μέχρι n, η
μήκος του s, και για καθένα

19
00:01:03,590 --> 00:01:05,760
επανάληψης αύξηση i.

20
00:01:05,760 --> 00:01:09,970
>> Και στη συνέχεια στο εσωτερικό αυτού του βρόχου, ας
πρώτος έλεγχος είναι η σημερινή επιστολή -

21
00:01:09,970 --> 00:01:12,270
το i-στό γράμμα του s, να το πω έτσι -

22
00:01:12,270 --> 00:01:14,170
ένα πεζό γράμμα.

23
00:01:14,170 --> 00:01:23,090
Αν s βραχίονα I είναι μεγαλύτερο ή ίσο
σε πεζά ένα, και είναι λιγότερο

24
00:01:23,090 --> 00:01:26,900
ή ίση με πεζά z -

25
00:01:26,900 --> 00:01:30,860
Τώρα, αν θέλετε να μετατρέψετε έναν πεζό
γράμμα σε κεφαλαίο, υπενθυμίζουν, πρώτον, ότι

26
00:01:30,860 --> 00:01:35,810
σε ένα πεζό ASCII a είναι 97
και ένα κεφαλαίο Α είναι 65.

27
00:01:35,810 --> 00:01:41,020
Εν τω μεταξύ, ένα πεζό b είναι 98,
και ένα κεφαλαίο Β είναι 66.

28
00:01:41,020 --> 00:01:44,180
>> Αν συνεχίσουμε να εξετάσουμε αυτό το μοτίβο,
θα δούμε ότι το πεζό

29
00:01:44,180 --> 00:01:49,240
γράμματα είναι πάντα 32 υψηλότερες τιμές
από τα κεφαλαία γράμματα.

30
00:01:49,240 --> 00:01:53,490
Έτσι, αν θέλουμε να μετατρέψετε από πεζά
σε κεφαλαία, θα έπρεπε

31
00:01:53,490 --> 00:01:57,210
αρκεί, πράγματι, για να αφαιρέσετε
32 από την είσοδο του χρήστη.

32
00:01:57,210 --> 00:02:01,330
Ή, γενικότερα, απλά αφαιρέστε ότι
διαφορά μεταξύ ενός πεζά γράμματα α και α

33
00:02:01,330 --> 00:02:02,310
κεφάλαιο Α.

34
00:02:02,310 --> 00:02:03,410
>> Πώς να εκφράσω αυτό;

35
00:02:03,410 --> 00:02:04,640
Λοιπόν, ας το κάνουμε στον κώδικα.

36
00:02:04,640 --> 00:02:09,960
Printf, παραθέτω, χωρίς εισαγωγικά "% c" για εκτύπωση
η τρέχουσα χαρακτήρα, που ακολουθείται από

37
00:02:09,960 --> 00:02:18,500
εκτύπωση ό, τι είναι στο s βραχίονα i μείον
το αποτέλεσμα του να κάνει ένα πεζό

38
00:02:18,500 --> 00:02:22,660
μείον κεφαλαία Ένα ερωτηματικό.

39
00:02:22,660 --> 00:02:27,010
Με άλλα λόγια, αυτή η παρενθετική
έκφρασης, λίγο ένα μεγάλο μείον A, είναι

40
00:02:27,010 --> 00:02:29,360
πρόκειται να επιστρέψει σε μας στο
το τέλος της ημέρας 32.

41
00:02:29,360 --> 00:02:31,230
Αλλά δεν πρέπει να ξεχνάμε
ότι είναι 32.

42
00:02:31,230 --> 00:02:34,150
Μπορώ να επιτρέψει στον υπολογιστή να καταλάβω
ποια είναι η διαφορά μεταξύ πεζών

43
00:02:34,150 --> 00:02:35,990
μια και το κεφάλαιο Α είναι.

44
00:02:35,990 --> 00:02:39,610
>> Εν τω μεταξύ, τη στιγμή που ξέρω τη διαφορά,
Μπορώ να το αφαιρέσουμε από s

45
00:02:39,610 --> 00:02:43,710
βραχίονα i, η οποία θα πάρει ό, τι είναι
προφανώς ένα πεζό γράμμα σε ένα

46
00:02:43,710 --> 00:02:48,100
χαμηλότερη τιμή, δηλαδή μια τιμή που χαρτογραφεί
επάνω σε ένα κεφαλαίο ισοδύναμο.

47
00:02:48,100 --> 00:02:51,240
Ας σώσει τώρα, την κατάρτιση,
και τρέξτε το πρόγραμμα.

48
00:02:51,240 --> 00:02:57,760
Κάντε κεφαλαιοποιήσει dot κάθετος κεφαλαιοποιούνται.

49
00:02:57,760 --> 00:03:01,290
Και η συμβολή μου θα είναι γεια.

50
00:03:01,290 --> 00:03:02,920
Και εκεί έχουμε, γεια σου.

51
00:03:02,920 --> 00:03:05,570
>> Τώρα μου προτροπή, κατά γενική ομολογία,
λίγο άσχημο, επειδή έχουμε

52
00:03:05,570 --> 00:03:07,810
παραλείπεται ένα κομμάτι της εκτύπωσης.

53
00:03:07,810 --> 00:03:09,370
Και ας πάμε πίσω και να προσθέσω ότι.

54
00:03:09,370 --> 00:03:12,890
Στο κάτω μέρος αυτού του προγράμματος,
Είμαι πολύ απλή, και κυρίως για

55
00:03:12,890 --> 00:03:18,440
αισθητικούς σκοπούς, πρόκειται να προσθέσει printf,
απόσπασμα, unquote backslash n.

56
00:03:18,440 --> 00:03:22,330
Ας αποθηκεύσετε ξανά αυτό το αρχείο,
μεταγλωττίσετε και να επαναπροσδιοριστούν.

57
00:03:22,330 --> 00:03:28,090
>> Κάντε κεφαλαιοποιήσει, dot κάθετος επωφεληθούμε.

58
00:03:28,090 --> 00:03:32,540
Και πάλι, για την είσοδο θα παρέχουν "γεια"
σε όλα τα πεζά και τώρα να πατήσετε το Enter,

59
00:03:32,540 --> 00:03:34,550
και "γεια", πολύ πιο καθαρά τυπωμένο.

60
00:03:34,550 --> 00:03:36,432