1 00:00:00,000 --> 00:00:00,720 2 00:00:00,720 --> 00:00:03,190 >> Дэвид Дж. Малан: Предположим, что я хотел бы реализовать программу, которая запрашивает 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 >> Давайте следующий объявить главный качестве десятичного главный пустоту и давайте теперь перейдем к подскажут 9 00:00:29,860 --> 00:00:31,600 пользователь для строки. 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 мы будем называть это с - 13 00:00:37,630 --> 00:00:44,010 и хранить в нем результат вызова библиотека CS50 функция GetString. 14 00:00:44,010 --> 00:00:48,850 >> Теперь займемся перебрать каждый из персонажей с, С капитализацией 15 00:00:48,850 --> 00:00:50,650 любые строчные буквы, которые мы видим. 16 00:00:50,650 --> 00:00:53,630 Для внутр, я получаю 0. 17 00:00:53,630 --> 00:00:58,780 Давайте также объявить п как равная длина строки с тем чтобы мы могли 18 00:00:58,780 --> 00:01:03,590 не перебрать с I вплоть до п, Длина с, и на каждом 19 00:01:03,590 --> 00:01:05,760 Шаг итерации я. 20 00:01:05,760 --> 00:01:09,970 >> А потом внутри этой петли, давайте Первая проверка текущий письмо - 21 00:01:09,970 --> 00:01:12,270 г-я буква с, так сказать - 22 00:01:12,270 --> 00:01:14,170 строчная буква. 23 00:01:14,170 --> 00:01:23,090 Если с кронштейн я больше или равна в нижний регистр, и это меньше, 24 00:01:23,090 --> 00:01:26,900 или равно строчной г - 25 00:01:26,900 --> 00:01:30,860 Теперь, если мы хотим преобразовать в нижний регистр Письмо в верхний регистр, напомним сначала, что 26 00:01:30,860 --> 00:01:35,810 в ASCII строчные 97 и в верхнем регистре 65. 27 00:01:35,810 --> 00:01:41,020 Между тем, в нижнем регистре б 98, и в верхнем регистре B 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, цитирую, конец цитаты "% С" для печати текущий символ, а затем 37 00:02:09,960 --> 00:02:18,500 печать все это в ы кронштейна Я минус результат того, в нижнем регистре A 38 00:02:18,500 --> 00:02:22,660 минус верхний регистр с запятой. 39 00:02:22,660 --> 00:02:27,010 Другими словами, этот скобках выражение, немного минус большой, это 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 >> Между тем, как только я знаю, что разница, Я могу вычесть его из с 45 00:02:39,610 --> 00:02:43,710 Кронштейн я, который состоится в чем предположительно строчная буква в 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 Сделать выгоду точка слэш капитализируются. 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, цитата, конец цитаты обратный слеш н. 56 00:03:18,440 --> 00:03:22,330 Давайте сохраните этот файл, перекомпилировать, повтор. 57 00:03:22,330 --> 00:03:28,090 >> Сделать выгоду, точка слэш выгоду. 58 00:03:28,090 --> 00:03:32,540 Опять же, для ввода я приведу "привет" в нижнем регистре и теперь нажмите Ввод, 59 00:03:32,540 --> 00:03:34,550 и "привет", гораздо более аккуратно напечатан. 60 00:03:34,550 --> 00:03:36,432