1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB BOWDEN:嗨,我是羅布。 3 00:00:13,750 --> 00:00:17,360 而當在羅馬,讓我們的程序 入鄉隨俗。 4 00:00:17,360 --> 00:00:22,280 所以,我們需要做的第一件事情就是檢查 以確保用戶實際進入 5 00:00:22,280 --> 00:00:26,670 我們希望每一個旋轉數 字符在命令行。 6 00:00:26,670 --> 00:00:27,740 >> 所以,我們檢查。 7 00:00:27,740 --> 00:00:30,180 是的argc等於2? 8 00:00:30,180 --> 00:00:34,190 如果不是的話,這意味著用戶無論是 沒有在輸入數字 9 00:00:34,190 --> 00:00:37,770 命令行或者輸入過多的 事情在命令行中,其中 10 00:00:37,770 --> 00:00:40,560 情況下,我們不知道該怎麼辦 與剩下的事情。 11 00:00:40,560 --> 00:00:45,750 所以,只要ARGC兩歲,我們可以 繼續與程序的其餘部分。 12 00:00:45,750 --> 00:00:49,610 >> 現在,請記住ARGV 1始終是一個字符串。 13 00:00:49,610 --> 00:00:52,490 但是,我們希望把它當作一個整數。 14 00:00:52,490 --> 00:00:57,550 因此,我們使用atoi函數這 提及肺炎一套規範來轉換 15 00:00:57,550 --> 00:01:02,330 串的argv 1為整數, 我們存儲的關鍵。 16 00:01:02,330 --> 00:01:06,050 我們要確保整 這是輸入不為負。 17 00:01:06,050 --> 00:01:09,490 如果它是,我們要打印,要 他們沒被允許的用戶 18 00:01:09,490 --> 00:01:11,980 要做到這一點,並返回。 19 00:01:11,980 --> 00:01:15,100 >> 所以,現在我們有一個有效的 從用戶數。 20 00:01:15,100 --> 00:01:19,780 但是,我們需要從得到一個字符串 用戶,我們要加密。 21 00:01:19,780 --> 00:01:25,340 所以,我們用do-whil​​e循環,並使用獲得 字符串來得到這個字符串從 22 00:01:25,340 --> 00:01:29,190 用戶,並繼續獲取字符串 直到他們真正 23 00:01:29,190 --> 00:01:31,270 輸入一個有效的字符串。 24 00:01:31,270 --> 00:01:34,400 >> 一旦我們有一個字符串,我們 可以繼續對它進行加密。 25 00:01:34,400 --> 00:01:38,120 所以,這個for循環是做 該加密。 26 00:01:38,120 --> 00:01:43,250 請注意,我們是從我迭代 等於0噸一路攀升到i等於 27 00:01:43,250 --> 00:01:47,790 n,其中n定義為長度 我們的消息,其中消息是 28 00:01:47,790 --> 00:01:50,260 字符串,用戶輸入。 29 00:01:50,260 --> 00:01:54,330 >> 因此,我們遍歷所有 字符的字符串。 30 00:01:54,330 --> 00:01:59,740 如果一個字符是大寫的,那麼 我們將以此來轉移它 31 00:01:59,740 --> 00:02:01,860 公式中,我們將 到了第二位。 32 00:02:01,860 --> 00:02:05,260 如果它是小寫,然後 我們將使用這是它轉移 33 00:02:05,260 --> 00:02:07,290 非常類似的公式。 34 00:02:07,290 --> 00:02:10,850 如果它既不是一個大寫的,也不 小寫字母 - 例如,它 35 00:02:10,850 --> 00:02:15,370 可以是數字或一個符號 - 然後我們 不會做任何事情來了。 36 00:02:15,370 --> 00:02:18,220 >> 那麼,什麼是這些公式? 37 00:02:18,220 --> 00:02:22,090 那麼,我們該如何轉移字符A? 38 00:02:22,090 --> 00:02:27,250 我們要正確對待字符 A為數字0。 39 00:02:27,250 --> 00:02:30,710 我們要對待的字符 B作為數1,依此類推。 40 00:02:30,710 --> 00:02:35,170 這是零和前幾個字符 字母表等。 41 00:02:35,170 --> 00:02:42,900 >> 所以在這裡,我的消息減去一個應該 給我們的數字的地方 42 00:02:42,900 --> 00:02:44,400 字母在字母表。 43 00:02:44,400 --> 00:02:48,080 所以,如果消息我是A,這 將會給我們0。 44 00:02:48,080 --> 00:02:52,880 現在,我們要添加到該 用戶希望該數 45 00:02:52,880 --> 00:02:54,840 通過旋轉字母。 46 00:02:54,840 --> 00:03:03,280 所以,如果他們進入3,那麼如果消息 我是一個,這會給我們0和加 47 00:03:03,280 --> 00:03:05,400 鍵會給我們3。 48 00:03:05,400 --> 00:03:09,450 >> 所以,現在,我們正在考慮的 在字母表中第三位。 49 00:03:09,450 --> 00:03:12,810 我們會看到為什麼我們需要國防部 在第二個民信。 50 00:03:12,810 --> 00:03:18,700 但最後,我們想對添加到 再次end一個轉向我們回 51 00:03:18,700 --> 00:03:22,020 這些字符的ASCII值 而不是在該數值的地方 52 00:03:22,020 --> 00:03:24,260 字母表中的這些字符。 53 00:03:24,260 --> 00:03:26,580 >> 那麼,為什麼我們國防部通過民信嗎? 54 00:03:26,580 --> 00:03:29,960 請記住,我們要環繞 從字母到年底 55 00:03:29,960 --> 00:03:31,470 開頭的字母。 56 00:03:31,470 --> 00:03:38,530 因此,如果用戶已經輸入的Z,則 從減去將要 57 00:03:38,530 --> 00:03:40,520 給我們25。 58 00:03:40,520 --> 00:03:44,800 如果鍵是3,那麼 我們將有28。 59 00:03:44,800 --> 00:03:53,000 但Ž應該環繞農行,所以28 模數的字母,這是哈希定義 60 00:03:53,000 --> 00:04:01,890 為26所料,是要給 我們2,其中C是第二個字母 61 00:04:01,890 --> 00:04:05,880 字母,如果你還記得,A是 字母表中的第零個字母。 62 00:04:05,880 --> 00:04:09,210 >> 所以這就是為什麼我們需要 通過模數的字母。 63 00:04:09,210 --> 00:04:13,540 現在,我們需要做的同樣的事情 為小寫字母,除 64 00:04:13,540 --> 00:04:17,240 請記住,當我們正在處理 小寫字母,它們有不同的 65 00:04:17,240 --> 00:04:18,579 ASCII值。 66 00:04:18,579 --> 00:04:24,550 因此,我們需要減去並添加上一個 從小寫轉移下來 67 00:04:24,550 --> 00:04:30,020 ASCII值,然後返回到 原來小寫的ASCII值。 68 00:04:30,020 --> 00:04:33,140 >> 最後,這會給我們 我們的加密郵件。 69 00:04:33,140 --> 00:04:37,780 而在最後,我們只是打印出 該消息,這就是它。 70 00:04:37,780 --> 00:04:39,875 我的名字是羅布,並且是凱撒。 71 00:04:39,875 --> 00:04:49,856