1 00:00:00,000 --> 00:00:00,720 2 00:00:00,720 --> 00:00:03,190 >> DAVID J. Malan: Giả sử tôi muốn để thực hiện một chương trình nhắc nhở 3 00:00:03,190 --> 00:00:06,650 người sử dụng cho một chuỗi và sau đó tiến hành để tận dụng đầu vào của họ, 4 00:00:06,650 --> 00:00:09,790 chuyển đổi bất kỳ chữ thường rằng họ gõ chữ hoa. 5 00:00:09,790 --> 00:00:11,770 Vâng, chúng ta hãy đi trước và thực hiện chương trình đó. 6 00:00:11,770 --> 00:00:18,760 >> Hãy đầu tiên bao gồm theo cs50.h bởi bao gồm stdio.h. 7 00:00:18,760 --> 00:00:23,990 Và để chúng ta có thể sử dụng strlen, chúng ta hãy bao gồm string.h. 8 00:00:23,990 --> 00:00:29,860 >> Chúng ta hãy tiếp theo tuyên bố chính như int void main và bây giờ chúng ta tiến hành để nhắc nhở 9 00:00:29,860 --> 00:00:31,600 người sử dụng cho một chuỗi. 10 00:00:31,600 --> 00:00:34,840 Printf, chúng ta hãy nhắc nhở họ đối với một số đầu vào. 11 00:00:34,840 --> 00:00:36,460 Bây giờ hãy khai báo một chuỗi - 12 00:00:36,460 --> 00:00:37,630 chúng tôi sẽ gọi nó s - 13 00:00:37,630 --> 00:00:44,010 và lưu trữ trong đó kết quả của gọi chức năng thư viện CS50 GetString. 14 00:00:44,010 --> 00:00:48,850 >> Bây giờ chúng ta tiến hành để lặp qua mỗi của các nhân vật trong s, tận 15 00:00:48,850 --> 00:00:50,650 bất kỳ chữ thường mà chúng ta thấy. 16 00:00:50,650 --> 00:00:53,630 Cho int, tôi nhận được 0. 17 00:00:53,630 --> 00:00:58,780 Chúng ta hãy cũng tuyên bố n như tương đương với chiều dài chuỗi s để chúng tôi có thể 18 00:00:58,780 --> 00:01:03,590 lặp từ i cho đến n, chiều dài, và trên mỗi 19 00:01:03,590 --> 00:01:05,760 lặp đi lặp lại tăng tôi. 20 00:01:05,760 --> 00:01:09,970 >> Và sau đó bên trong vòng lặp này, chúng ta hãy kiểm tra đầu tiên là thư hiện tại - 21 00:01:09,970 --> 00:01:12,270 các thư thứ i, do đó, để nói chuyện - 22 00:01:12,270 --> 00:01:14,170 chữ viết thường. 23 00:01:14,170 --> 00:01:23,090 Nếu s khung tôi là lớn hơn hoặc bằng thành chữ thường một, và nó ít 24 00:01:23,090 --> 00:01:26,900 hơn hoặc bằng chữ thường z - 25 00:01:26,900 --> 00:01:30,860 Bây giờ nếu chúng tôi muốn chuyển đổi một chữ thường thư chữ hoa, nhớ lại đầu tiên 26 00:01:30,860 --> 00:01:35,810 trong ASCII một chữ thường một là 97 và một chữ hoa A là 65. 27 00:01:35,810 --> 00:01:41,020 Trong khi đó, một chữ thường b là 98, và một chữ hoa B là 66. 28 00:01:41,020 --> 00:01:44,180 >> Nếu chúng ta tiếp tục xem xét mô hình đó, chúng ta sẽ thấy các chữ thường 29 00:01:44,180 --> 00:01:49,240 chữ luôn 32 giá trị cao hơn hơn các chữ cái viết hoa. 30 00:01:49,240 --> 00:01:53,490 Vì vậy, nếu chúng tôi muốn chuyển đổi từ chữ thường chữ hoa, cần 31 00:01:53,490 --> 00:01:57,210 đủ, thực sự, trừ 32 từ đầu vào của người dùng. 32 00:01:57,210 --> 00:02:01,330 Hay rộng hơn, chỉ trừ có sự khác biệt giữa một một chữ thường và một 33 00:02:01,330 --> 00:02:02,310 vốn A. 34 00:02:02,310 --> 00:02:03,410 >> Làm thế nào để thể hiện điều đó không? 35 00:02:03,410 --> 00:02:04,640 Vâng, chúng ta làm điều đó trong mã. 36 00:02:04,640 --> 00:02:09,960 Printf, báo giá, unquote "% c" để in các nhân vật hiện tại, tiếp theo 37 00:02:09,960 --> 00:02:18,500 in ấn bất cứ điều gì trong khung s i trừ kết quả làm chữ thường một 38 00:02:18,500 --> 00:02:22,660 trừ chữ hoa Một dấu chấm phẩy. 39 00:02:22,660 --> 00:02:27,010 Nói cách khác, trong dấu ngoặc đơn này biểu hiện, ít dấu trừ lớn A, là 40 00:02:27,010 --> 00:02:29,360 sẽ trở lại với chúng tôi tại kết thúc ngày 32. 41 00:02:29,360 --> 00:02:31,230 Nhưng tôi không phải nhớ rằng đó là 32. 42 00:02:31,230 --> 00:02:34,150 Tôi có thể cho phép các máy tính để tìm ra những gì khác biệt giữa chữ thường 43 00:02:34,150 --> 00:02:35,990 a và vốn A là. 44 00:02:35,990 --> 00:02:39,610 >> Trong khi đó, một khi tôi biết sự khác biệt đó, Tôi có thể trừ nó từ s 45 00:02:39,610 --> 00:02:43,710 khung i, trong đó sẽ đưa những gì có lẽ một chữ thường để một 46 00:02:43,710 --> 00:02:48,100 giá trị thấp hơn, cụ thể là một giá trị mà các bản đồ vào một tương đương chữ hoa. 47 00:02:48,100 --> 00:02:51,240 Bây giờ chúng ta tiết kiệm, biên dịch, và chạy chương trình này. 48 00:02:51,240 --> 00:02:57,760 Hãy tận dấu chấm dấu gạch chéo hoa. 49 00:02:57,760 --> 00:03:01,290 Và đầu vào của tôi sẽ được chào. 50 00:03:01,290 --> 00:03:02,920 Và chúng tôi đã có, xin chào. 51 00:03:02,920 --> 00:03:05,570 >> Tại dấu nhắc của tôi, phải thừa nhận, là một chút xấu xí, bởi vì chúng tôi đã 52 00:03:05,570 --> 00:03:07,810 bỏ qua một chút về in ấn. 53 00:03:07,810 --> 00:03:09,370 Và chúng ta hãy quay trở lại và thêm rằng. 54 00:03:09,370 --> 00:03:12,890 Ở dưới cùng của chương trình này, Tôi rất đơn giản, và chủ yếu là cho 55 00:03:12,890 --> 00:03:18,440 mục đích thẩm mỹ, sẽ thêm printf, báo giá, dấu gạch chéo ngược unquote n. 56 00:03:18,440 --> 00:03:22,330 Hãy lưu lại tập tin này, biên dịch lại, chạy lại. 57 00:03:22,330 --> 00:03:28,090 >> Hãy tận, dấu chấm dấu gạch chéo tận. 58 00:03:28,090 --> 00:03:32,540 Một lần nữa, cho đầu vào tôi sẽ cung cấp "hello" trong tất cả các trường hợp thấp hơn và bây giờ nhấn Enter, 59 00:03:32,540 --> 00:03:34,550 và "xin chào", nhiều sạch hơn in. 60 00:03:34,550 --> 00:03:36,432