1 00:00:00,000 --> 00:00:10,103 2 00:00:10,103 --> 00:00:11,270 >> ZAMYLA CHAN : 축하합니다 귀하의 마무리에 3 00:00:11,270 --> 00:00:13,200 C 프로그램의 첫 번째 커플입니다. 4 00:00:13,200 --> 00:00:16,379 알아요 당신의 첫번째 입성에 C 구문은 어려운하실 수 있습니다. 5 00:00:16,379 --> 00:00:20,060 하지만 난의 끝에, 당신을 확신 물론, 당신은 볼 수있을 것이다 6 00:00:20,060 --> 00:00:23,870 첫 번째 과제 커플 분을 수행합니다. 7 00:00:23,870 --> 00:00:27,830 >> 이제 더 익숙해 걸 구문,의 카이사르를 얻을 수 있습니다. 8 00:00:27,830 --> 00:00:31,720 시저에서 사용자를 제출합니다 명령 줄에 정수 키 9 00:00:31,720 --> 00:00:35,300 인수는 다음 일반을 입력하십시오 프롬프트에서 텍스트 메시지. 10 00:00:35,300 --> 00:00:38,050 프로그램은 encipher의 것 텍스트 인쇄 11 00:00:38,050 --> 00:00:40,020 자신의 암호문 메시지가 표시됩니다. 12 00:00:40,020 --> 00:00:42,980 >> 시저에 대한 enciphering과 아주 간단합니다. 13 00:00:42,980 --> 00:00:46,455 자신에 각 문자를 이동 키에 의한 일반 텍스트. 14 00:00:46,455 --> 00:00:49,220 결과적으로, 그것은 또한의 꽤 불안. 15 00:00:49,220 --> 00:00:53,850 그러나 구현하는 카이사르 소개합니다 우리 ASCIIMath 및 어레이 데이터 16 00:00:53,850 --> 00:00:54,460 구조. 17 00:00:54,460 --> 00:00:57,510 우리는 복잡한거야 나중에 암호. 18 00:00:57,510 --> 00:01:01,680 2 카이사르 키에있는 문자 일반 텍스트로 표시 될 것이다 19 00:01:01,680 --> 00:01:07,580 암호문의 문자 C 때문에 C A. B 후 두 글자가 될 것입니다 20 00:01:07,580 --> 00:01:12,450 향해 E.에 의해 D와 C로 표시 알파벳의 끝, W는 21 00:01:12,450 --> 00:01:18,550 Z.하지만 Y가 Y와 X로 표시 그래서 그 뒤에 두 글자가없는 22 00:01:18,550 --> 00:01:21,070 암호는 알파벳의 주위에 래핑합니다. 23 00:01:21,070 --> 00:01:27,190 일반 텍스트 Y 따라서로 표시됩니다 그것은 수도 B.하여 암호문에서, 그리고 Z 24 00:01:27,190 --> 00:01:32,080 같은 카이사르 사이퍼를 볼 수 있도록 연속 알파벳 휠. 25 00:01:32,080 --> 00:01:35,760 >> 자신의 텍스트, 사용자 encipher의하려면 두 개의 인수를 입력합니다 26 00:01:35,760 --> 00:01:37,090 - 명령 줄에 27 00:01:37,090 --> 00:01:40,010 . / 시저는 키 따랐다. 28 00:01:40,010 --> 00:01:44,710 언제나처럼, 우리는 사용자를 신뢰할 수 없습니다 완전하게 입력을 입력합니다 29 00:01:44,710 --> 00:01:45,800 우리의 프로그램에 대한 감각. 30 00:01:45,800 --> 00:01:50,670 그래서 우리는 자신을 확인해야합니다 명령 줄 입력. 31 00:01:50,670 --> 00:01:57,285 >> int 대신 주요 무효를 사용하여, 우리는거야 주요 int, INT ARGC, 문자열 변수는 argv를 사용하여. 32 00:01:57,285 --> 00:02:01,730 정수 변수 ARGC 나타냅니다 에 전달 된 인수의 수 33 00:02:01,730 --> 00:02:02,880 명령 행. 34 00:02:02,880 --> 00:02:09,070 그리고 ARGV는 배열, 또는 그것의 생각 인수 목록이 전달 된 35 00:02:09,070 --> 00:02:12,000 >> 그래서 황제를 위해, 우리는 어떻게 확인합니까 사용자의 입력? 36 00:02:12,000 --> 00:02:15,870 글쎄, 그들은 단지 입력해야합니다 두 개의 명령 줄 인수 - 37 00:02:15,870 --> 00:02:18,150 . / 시저 및 키. 38 00:02:18,150 --> 00:02:22,340 ARGC 2가 아닌 경우 그래서, 즉, 그들 중 키와 그냥 잊고 39 00:02:22,340 --> 00:02:27,230 입력. / 시저하거나, 여러 키를 입력했습니다. 40 00:02:27,230 --> 00:02:29,770 >> 이 경우, 당신은거야 지시 사항을 인쇄하려면 41 00:02:29,770 --> 00:02:30,910 하고 프로그램을 종료합니다. 42 00:02:30,910 --> 00:02:34,320 그들은 다시 시도해야합니다 명령 줄에서. 43 00:02:34,320 --> 00:02:37,430 그러나 ARGC 2 경우에도, 당신은거야 검사 할 필요가 있는지 여부 그들은 44 00:02:37,430 --> 00:02:39,100 당신에게 유효한 키를 제공합니다. 45 00:02:39,100 --> 00:02:40,730 카이사르를 들어, 정수가 필요합니다. 46 00:02:40,730 --> 00:02:43,260 그러나 변수는 argv는 문자열의 배열입니다. 47 00:02:43,260 --> 00:02:46,490 당신은 어떻게 그 키에 액세스합니까? 48 00:02:46,490 --> 00:02:47,850 >> 배열에서 빠른 봐 - 49 00:02:47,850 --> 00:02:51,410 여러 누르고 데이터 구조 동일한 데이터 유형의 값. 50 00:02:51,410 --> 00:02:55,350 항목 즉, 제로 인덱스 것을 첫 번째 요소는 인덱스 0입니다 51 00:02:55,350 --> 00:03:00,260 그리고 마지막 요소는 인덱스 크기에있다 크기의 수에서 1을 뺀, 52 00:03:00,260 --> 00:03:02,850 배열의 요소. 53 00:03:02,850 --> 00:03:07,380 >> 나는 새로운 문자열 배열 사서함을 선언하는 경우 길이가 3, 시각, 그것은 54 00:03:07,380 --> 00:03:08,570 다음과 같습니다. 55 00:03:08,570 --> 00:03:11,520 문자열에 대한 세 가지 용기 나란히. 56 00:03:11,520 --> 00:03:15,445 모든 요소에 액세스하려면, 당신의 이름을 입력 배열의 다음 표시 57 00:03:15,445 --> 00:03:18,080 대괄호의 인덱스. 58 00:03:18,080 --> 00:03:21,610 여기에서, 각에 값을 할당 해요 나는 어떤 함께 할 때와 마찬가지로 요소 59 00:03:21,610 --> 00:03:24,310 다른 문자열 변수입니다. 60 00:03:24,310 --> 00:03:29,020 >> 따라서 우리의 명령 줄 인수를 액세스하려면, 우리가해야 할 모든 접근입니다 61 00:03:29,020 --> 00:03:31,690 ARGV 배열의 오른쪽 요소입니다. 62 00:03:31,690 --> 00:03:37,360 사용자는. / 발사 팀을 입력 한 경우 단자에 로켓 ARGV 0 것 63 00:03:37,360 --> 00:03:38,950 합니다. / 발사. 64 00:03:38,950 --> 00:03:45,010 ARGV는 팀, 그리고 것 arg2에 로켓 될 것이다. 65 00:03:45,010 --> 00:03:47,670 >> 우리는 우리의 키에 액세스 할 수 있습니다 이제는 우리는 여전히 확인해야합니다 66 00:03:47,670 --> 00:03:49,040 정확하다고 확인하십시오. 67 00:03:49,040 --> 00:03:51,060 우리는 정수로 변환해야합니다. 68 00:03:51,060 --> 00:03:54,680 그러나 우리는처럼 캐스팅 할 수 없습니다 우리는 이전에 수행 한. 69 00:03:54,680 --> 00:03:58,800 다행히,에 Y 기능을 담당 우리이의에도 0을 반환 70 00:03:58,800 --> 00:04:02,110 문자열을 변환 할 수없는 경우 정수로. 71 00:04:02,110 --> 00:04:04,450 그것은 말을하지만, 당신에게 최대의 사용자는 왜하지 않습니다 72 00:04:04,450 --> 00:04:06,220 프로그램이 계속 진행하자. 73 00:04:06,220 --> 00:04:10,710 에서 Y에 결과를 저장 정수, 거기 당신은 키가 있습니다. 74 00:04:10,710 --> 00:04:12,070 다음 부분은 간단합니다. 75 00:04:12,070 --> 00:04:15,940 자신의 일반 텍스트 사용자에게 메시지를 표시 이는 데이터 형식 문자열이 될 것입니다. 76 00:04:15,940 --> 00:04:18,339 다행히 우리를 위해, 모든 사용자가 입력 문자열은 유효합니다. 77 00:04:18,339 --> 00:04:21,170 78 00:04:21,170 --> 00:04:24,760 >> 우리는 필요한 모든 입력이 이제는 사용자로부터, 그것은 우리에게 시간의 79 00:04:24,760 --> 00:04:26,520 자신의 메시지를 encipher의. 80 00:04:26,520 --> 00:04:29,200 카이사르의 개념은 간단하다 이해하기 충분. 81 00:04:29,200 --> 00:04:33,750 하지만 어떻게 컴퓨터를 알고 않는 문자는 다른 후 오는가? 82 00:04:33,750 --> 00:04:36,100 >> ASCII 테이블이 들어 오면 여기에 83 00:04:36,100 --> 00:04:39,420 모든 문자는 정수가 숫자는 그것과 관련된. 84 00:04:39,420 --> 00:04:41,380 자본이 65. 85 00:04:41,380 --> 00:04:43,310 캐피탈 B는 66이다. 86 00:04:43,310 --> 00:04:45,260 97이다 소문자. 87 00:04:45,260 --> 00:04:47,590 소문자 B는 98이다. 88 00:04:47,590 --> 00:04:50,770 그러나 문자는 제한되지 않는다 그냥 알파벳 숫자. 89 00:04:50,770 --> 00:04:56,020 예를 들어, @ 기호 ASCII 번호 64입니다. 90 00:04:56,020 --> 00:04:59,690 >> 전체 문자열을 처리하기 전에, 의 척하자 우리는 단지 이동해야합니다 91 00:04:59,690 --> 00:05:01,220 한 문자. 92 00:05:01,220 --> 00:05:04,640 음, 우리는 실제 이동하려면 일반 텍스트 문자,하지 93 00:05:04,640 --> 00:05:06,020 문자 나 숫자. 94 00:05:06,020 --> 00:05:09,100 우리가 원하는거야 그래서 우선 검사 문자에 있는지 여부입니다 95 00:05:09,100 --> 00:05:10,430 알파벳. 96 00:05:10,430 --> 00:05:14,460 >> 함수 isalpha에 대한이 작업을 수행 우리와 부울을 반환 - 97 00:05:14,460 --> 00:05:18,570 문자 경우는 true, 문자 그렇지 않으면 경우 false입니다. 98 00:05:18,570 --> 00:05:22,270 두 가지 다른 유용한 기능은 다음과 같습니다 대문자 이건와 islower와 99 00:05:22,270 --> 00:05:23,860 단정 이름. 100 00:05:23,860 --> 00:05:27,370 그들은 true를 반환하는 경우 지정된 문자 , 대문자 또는 소문자 101 00:05:27,370 --> 00:05:28,740 각각. 102 00:05:28,740 --> 00:05:33,770 그들은 부울이기 때문에, 그들이있어 조건으로 사용하는 데 유용합니다. 103 00:05:33,770 --> 00:05:38,310 >> isalpha에가 true를 반환하면, 당신이 필요합니다 키를 사용하여 해당 문자를 이동합니다. 104 00:05:38,310 --> 00:05:43,750 그러니 ASCIIMath을 열어 보자 일부 ASCII 수학을. 105 00:05:43,750 --> 00:05:48,700 사용법은 사용법과 매우 유사합니다 시저에 대한과에서 키 걸립니다 106 00:05:48,700 --> 00:05:50,870 명령 행. 107 00:05:50,870 --> 00:05:59,590 >> 나는 ASCIIMath 5를 실행하는 경우, 추가 보인다 5, 저에게 문자 F를 제공하고 108 00:05:59,590 --> 00:06:01,260 ASCII 값을 표시. 109 00:06:01,260 --> 00:06:04,090 그럼이 프로그램을 살펴 보자. 110 00:06:04,090 --> 00:06:11,820 >> 당신은 여기 왜 궁금 수 있습니다 그것의 때 문자, 정수 111 00:06:11,820 --> 00:06:14,330 명확하게, 잘, 문자. 112 00:06:14,330 --> 00:06:17,690 그것은 밝혀 그 문자와 정수 교환 할 수있다. 113 00:06:17,690 --> 00:06:21,730 하나의 문자를 넣어 따옴표, 정수 저장할 수 있습니다 114 00:06:21,730 --> 00:06:25,390 자본의 ASCII 값 A.하지만,주의해야합니다. 115 00:06:25,390 --> 00:06:27,150 당신은 하나의 옷이 필요합니다. 116 00:06:27,150 --> 00:06:31,260 단일 인용 부호없이, 컴파일러는 변수에 보이는 것 117 00:06:31,260 --> 00:06:35,510 , 그리고 캐릭터 이름. 118 00:06:35,510 --> 00:06:42,140 >> 그럼 내가 저장, 문자와 키를 추가 INT 변수 결과 합계입니다. 119 00:06:42,140 --> 00:06:47,740 결과 데이터 유형의 경우에도 정수, 내 printf의 문을 사용하여 120 00:06:47,740 --> 00:06:50,370 문자 % C 자리. 121 00:06:50,370 --> 00:06:54,530 그래서 프로그램이 문자를 출력 정수 결과와 관련된. 122 00:06:54,530 --> 00:07:00,400 그리고 우리는 정수를 인쇄 이후 형태뿐만 아니라 % d을 (를) 사용하여, 우리는 볼 123 00:07:00,400 --> 00:07:02,110 수뿐만 아니라. 124 00:07:02,110 --> 00:07:04,450 그래서 지금 당신이 볼 수있는 우리 문자를 치료하고 125 00:07:04,450 --> 00:07:06,980 정수, 그 반대의 경우도 마찬가지입니다. 126 00:07:06,980 --> 00:07:12,205 >> ASCIIMath 몇 가지 테스트 해 봅시다 키로서 사용 25 번 이상. 127 00:07:12,205 --> 00:07:15,510 128 00:07:15,510 --> 00:07:17,090 우리는 문자 z를 얻을. 129 00:07:17,090 --> 00:07:19,750 지금 우리는 26를 사용해보십시오. 130 00:07:19,750 --> 00:07:25,600 우리는 편지를 얻을 싶어하지만, 대신에 우리는 왼쪽 대괄호를 얻을. 131 00:07:25,600 --> 00:07:29,490 그래서 분명히, 그냥 추가 편지의 핵심은하지 않습니다. 132 00:07:29,490 --> 00:07:32,780 우리는 포장하는 공식을 알아 내야 알파벳의 주위에 드 셨나요 133 00:07:32,780 --> 00:07:34,570 처음에 예 않았다. 134 00:07:34,570 --> 00:07:38,520 >> 카이사르에 대한 공식 변화는 다음과 같다. 135 00:07:38,520 --> 00:07:42,750 C는 P 플러스 K 모듈 26과 같습니다. 136 00:07:42,750 --> 00:07:46,040 모듈이 유용 기억 우리에게 나머지를주는 작업 137 00:07:46,040 --> 00:07:49,880 다른에 하나의 번호를 나누는. 138 00:07:49,880 --> 00:07:54,870 의는 일반에이 공식을 적용 할 수 2 키 텍스트 문자입니다. 139 00:07:54,870 --> 00:08:01,810 Y의 ASCII 값은 89이다 우리에게 91 모듈 26을 제공합니다 140 00:08:01,810 --> 00:08:03,690 이는 13과 같다 - 141 00:08:03,690 --> 00:08:08,740 확실히 ASCII 값 의, 그 67이다. 142 00:08:08,740 --> 00:08:12,810 >> 지금 저를 유머와에서 벗어나 알파벳 색인에 ASCII 값 143 00:08:12,810 --> 00:08:18,690 는 0이고 Z는 25입니다 Y는 24 것을 의미. 144 00:08:18,690 --> 00:08:25,830 24 플러스 2, 나머지 6, 우리에게 26을 제공합니다 이다 나머지 26, 0, 145 00:08:25,830 --> 00:08:28,170 의 알파벳 인덱스입니다. 146 00:08:28,170 --> 00:08:32,980 그래서 공식에 적용 할 것 알파벳 문자의 인덱스 147 00:08:32,980 --> 00:08:34,960 하지의 ASCII 값입니다. 148 00:08:34,960 --> 00:08:37,630 >> 하지만 당신은 ASCII 값으로 시작합니다. 149 00:08:37,630 --> 00:08:41,650 그리고 암호문 문자를 인쇄하려면, 당신은뿐만 아니라 자사의 ASCII 값을해야합니다. 150 00:08:41,650 --> 00:08:46,400 그것은 알아 내기 위해, 그 후에 당신에게 최대의 앞뒤로 전환하는 방법에 대해 설명합니다. 151 00:08:46,400 --> 00:08:49,850 >> 일단 당신이 올바른 수식을 계산 하나의 문자를 모두 당신이 할 필요가 152 00:08:49,850 --> 00:08:53,520 모든에 동일한 공식을 적용합니다 일반 텍스트 문자 - 153 00:08:53,520 --> 00:08:57,720 그 문자는 영문자이며, 경우에만 물론입니다. 154 00:08:57,720 --> 00:09:02,360 그리고 당신은 보존해야 할 기억 경우 상단 또는 하단, 그 곳의 155 00:09:02,360 --> 00:09:06,890 대문자 이건과 isLower 기능 언급 한 이전의 편리 올 것이다. 156 00:09:06,890 --> 00:09:08,830 당신은 두 가지 공식이있을 수 있습니다 - 157 00:09:08,830 --> 00:09:11,680 대문자 하나 와 소문자 하나. 158 00:09:11,680 --> 00:09:18,420 그래서 대문자 이건은 isLower 당신을 도움이 될 것입니다 적용 할 식을 결정합니다. 159 00:09:18,420 --> 00:09:22,460 >> 어떻게 당신이 모든에 수식을 적용 하는가 문자열에서 단일 문자? 160 00:09:22,460 --> 00:09:25,910 음, 문자열은 단지입니다 문자 배열입니다. 161 00:09:25,910 --> 00:09:31,150 그래서 당신은 각 문자에 액세스 할 수 있습니다 의 모든 문자를 통해 그룹화 162 00:09:31,150 --> 00:09:33,450 루프에서 문자열입니다. 163 00:09:33,450 --> 00:09:37,550 루프에 대한 귀하의 상태에 관해서는, 문자열에 대한 함수 strlen 함수, 164 00:09:37,550 --> 00:09:39,280 길이는 유용 올 것이다. 165 00:09:39,280 --> 00:09:44,020 그것은 입력으로 문자열을 소요하고 해당 문자열의 길이를 반환합니다. 166 00:09:44,020 --> 00:09:49,250 올바른 라이브러리를 포함해야합니다 문자열 길이 함수를 사용합니다. 167 00:09:49,250 --> 00:09:51,790 >> 그리고 거기 당신은 당신의 암호문이있다. 168 00:09:51,790 --> 00:09:53,260 내 이름은 Zamyla입니다. 169 00:09:53,260 --> 00:09:54,510 와 [목청 CODE]. 170 00:09:54,510 --> 00:10:02,944