1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB Bowden: Xin chào, tôi Rob. 3 00:00:13,750 --> 00:00:17,360 Và khi ở Rome, cho chương trình như người La Mã làm. 4 00:00:17,360 --> 00:00:22,280 Vì vậy, điều đầu tiên chúng ta cần làm là kiểm tra để đảm bảo người sử dụng thực sự bước vào 5 00:00:22,280 --> 00:00:26,670 số lượng mà chúng tôi muốn xoay mỗi nhân vật do tại dòng lệnh. 6 00:00:26,670 --> 00:00:27,740 >> Vì vậy, chúng tôi kiểm tra. 7 00:00:27,740 --> 00:00:30,180 Là argc bằng 2? 8 00:00:30,180 --> 00:00:34,190 Nếu nó không phải, có nghĩa là người sử dụng một trong hai không nhập số vào 9 00:00:34,190 --> 00:00:37,770 dòng lệnh hoặc họ nhập quá nhiều điều tại dòng lệnh, trong đó 10 00:00:37,770 --> 00:00:40,560 trường hợp chúng tôi không biết phải làm gì với phần còn lại của sự vật. 11 00:00:40,560 --> 00:00:45,750 Vì vậy, miễn là argc là hai, chúng ta có thể tiếp tục với phần còn lại của chương trình. 12 00:00:45,750 --> 00:00:49,610 >> Bây giờ, hãy nhớ rằng argv 1 luôn luôn là một chuỗi. 13 00:00:49,610 --> 00:00:52,490 Nhưng chúng tôi muốn coi nó như là một số nguyên. 14 00:00:52,490 --> 00:00:57,550 Vì vậy, chúng tôi sử dụng các chức năng atoi đó là nêu trên p bộ spec để chuyển đổi 15 00:00:57,550 --> 00:01:02,330 chuỗi argv 1 tới một số nguyên, và chúng tôi lưu trữ trong chính. 16 00:01:02,330 --> 00:01:06,050 Chúng tôi muốn đảm bảo rằng các số nguyên đã được nhập vào không phải là tiêu cực. 17 00:01:06,050 --> 00:01:09,490 Và nếu nó được, chúng tôi muốn in đó để người dùng rằng họ không được phép 18 00:01:09,490 --> 00:01:11,980 để làm điều đó, và quay trở lại. 19 00:01:11,980 --> 00:01:15,100 >> Vì vậy, bây giờ chúng tôi có một hợp lệ số từ người dùng. 20 00:01:15,100 --> 00:01:19,780 Nhưng chúng ta cần phải có được một chuỗi từ người sử dụng mà chúng ta muốn mã hóa. 21 00:01:19,780 --> 00:01:25,340 Vì vậy, chúng tôi sử dụng để làm, trong khi vòng lặp và sử dụng được chuỗi để có được chuỗi này từ 22 00:01:25,340 --> 00:01:29,190 người sử dụng, và tiếp tục nhận được chuỗi cho đến khi họ thực sự 23 00:01:29,190 --> 00:01:31,270 nhập vào một chuỗi hợp lệ. 24 00:01:31,270 --> 00:01:34,400 >> Một khi chúng ta có chuỗi đó, chúng tôi có thể tiếp tục mã hóa nó. 25 00:01:34,400 --> 00:01:38,120 Vì vậy, vòng lặp này được làm mà mã hóa. 26 00:01:38,120 --> 00:01:43,250 Chú ý rằng chúng ta đang lặp từ i bằng 0 t tất cả các con đường lên đến tôi bình đẳng 27 00:01:43,250 --> 00:01:47,790 n, trong đó n được định nghĩa là chiều dài của tin của chúng tôi, nơi thông báo là 28 00:01:47,790 --> 00:01:50,260 chuỗi mà người dùng nhập vào. 29 00:01:50,260 --> 00:01:54,330 >> Vì vậy, chúng ta đang lặp lại trên tất cả ký tự trong chuỗi. 30 00:01:54,330 --> 00:01:59,740 Và nếu một nhân vật được chữ hoa, sau đó chúng ta sẽ thay đổi nó bằng cách sử dụng này 31 00:01:59,740 --> 00:02:01,860 công thức, mà chúng ta sẽ được để trong một giây. 32 00:02:01,860 --> 00:02:05,260 Và nếu nó thành chữ thường, sau đó chúng tôi sẽ thay đổi nó bằng cách sử dụng này là 33 00:02:05,260 --> 00:02:07,290 công thức rất giống nhau. 34 00:02:07,290 --> 00:02:10,850 Và nếu đó là không một chữ hoa hay thư chữ thường - ví dụ, nó 35 00:02:10,850 --> 00:02:15,370 có thể là một số hoặc một biểu tượng - sau đó chúng tôi sẽ không làm bất cứ điều gì với nó. 36 00:02:15,370 --> 00:02:18,220 >> Vì vậy, các công thức là gì? 37 00:02:18,220 --> 00:02:22,090 Vâng, làm thế nào để chúng ta thay đổi các ký tự A? 38 00:02:22,090 --> 00:02:27,250 Chúng tôi muốn đối xử với nhân vật Một là số 0. 39 00:02:27,250 --> 00:02:30,710 Và chúng tôi muốn để điều trị các nhân vật B là số 1, và như vậy. 40 00:02:30,710 --> 00:02:35,170 Đó là nhân vật thứ không và lần đầu tiên của bảng chữ cái và như vậy. 41 00:02:35,170 --> 00:02:42,900 >> Vì vậy, ở đây, tôi tin trừ Một là vụ để cho chúng ta nơi số của 42 00:02:42,900 --> 00:02:44,400 thư trong bảng chữ cái. 43 00:02:44,400 --> 00:02:48,080 Vì vậy, nếu tin tôi là A, này sẽ cung cấp cho chúng tôi 0. 44 00:02:48,080 --> 00:02:52,880 Bây giờ, chúng tôi muốn thêm vào đó số mà người sử dụng muốn 45 00:02:52,880 --> 00:02:54,840 xoay thư bằng. 46 00:02:54,840 --> 00:03:03,280 Vì vậy, nếu họ bước vào 3, sau đó nếu tin nhắn tôi là A, điều này sẽ cho chúng ta và cộng 0 47 00:03:03,280 --> 00:03:05,400 chính sẽ cho chúng ta 3. 48 00:03:05,400 --> 00:03:09,450 >> Vì vậy, bây giờ, chúng tôi đang xem xét việc vị trí thứ ba trong bảng chữ cái. 49 00:03:09,450 --> 00:03:12,810 Chúng ta sẽ thấy lý do tại sao chúng ta cần phải mod bằng chữ num trong một giây. 50 00:03:12,810 --> 00:03:18,700 Nhưng cuối cùng, chúng tôi muốn thêm vào các kết thúc một lần nữa để thay đổi chúng ta trở lại 51 00:03:18,700 --> 00:03:22,020 Giá trị ASCII cho các ký tự thay vì những nơi số trong 52 00:03:22,020 --> 00:03:24,260 bảng chữ cái của các nhân vật. 53 00:03:24,260 --> 00:03:26,580 >> Vì vậy, tại sao chúng ta mod bởi chữ num? 54 00:03:26,580 --> 00:03:29,960 Hãy nhớ rằng chúng tôi muốn để bọc xung quanh từ cuối của bảng chữ cái đến 55 00:03:29,960 --> 00:03:31,470 bắt đầu của bảng chữ cái. 56 00:03:31,470 --> 00:03:38,530 Vì vậy, nếu người dùng đã nhập vào Z, sau đó trừ đi một từ có nghĩa là sẽ 57 00:03:38,530 --> 00:03:40,520 cung cấp cho chúng tôi 25. 58 00:03:40,520 --> 00:03:44,800 Và nếu phím là 3, sau đó chúng ta sẽ có 28. 59 00:03:44,800 --> 00:03:53,000 Nhưng Z nên bọc xung quanh để ABC, vì vậy 28 chữ num mod, được băm xác định 60 00:03:53,000 --> 00:04:01,890 như 26 để được mong đợi, sẽ cung cấp cho chúng tôi 2, trong đó C là lá thư thứ hai của 61 00:04:01,890 --> 00:04:05,880 bảng chữ cái, nếu bạn nhớ rằng A là các thư thứ không của bảng chữ cái. 62 00:04:05,880 --> 00:04:09,210 >> Vì vậy, đó là lý do tại sao chúng ta cần phải mod bằng chữ num. 63 00:04:09,210 --> 00:04:13,540 Bây giờ, chúng ta cần phải làm một điều chính xác cho chữ thường, ngoại trừ 64 00:04:13,540 --> 00:04:17,240 hãy nhớ rằng khi chúng tôi đang làm việc với chữ thường, họ có khác nhau 65 00:04:17,240 --> 00:04:18,579 Giá trị ASCII. 66 00:04:18,579 --> 00:04:24,550 Và vì vậy chúng tôi cần phải trừ đi và thêm vào một để thay đổi nó xuống từ chữ thường 67 00:04:24,550 --> 00:04:30,020 Giá trị ASCII và sau đó trở lại ban đầu giá trị ASCII chữ thường. 68 00:04:30,020 --> 00:04:33,140 >> Và cuối cùng, mà sẽ cung cấp cho chúng tôi tin nhắn được mã hóa của chúng tôi. 69 00:04:33,140 --> 00:04:37,780 Và cuối cùng, chúng tôi chỉ in ra thông điệp, và đó là nó. 70 00:04:37,780 --> 00:04:39,875 Tên tôi là Rob, và là Caesar. 71 00:04:39,875 --> 00:04:49,856