1 00:00:00,000 --> 00:00:00,720 2 00:00:00,720 --> 00:00:03,190 >> Дејвид Џ MALAN: Да претпоставиме дека јас би сакал да спроведе програма што го поттикнува 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 >> Ајде следната прогласи главната како int главната празнина и ајде сега продолжи да поттикне 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 >> Ајде сега продолжи да iterate преку секоја од ликовите во ОК, Капитализиране 15 00:00:48,850 --> 00:00:50,650 било мали букви, кои ги гледаме. 16 00:00:50,650 --> 00:00:53,630 За int, можам да добијам 0. 17 00:00:53,630 --> 00:00:58,780 Да, исто така прогласи n како да е еднаква на стрингот должина на коментарите, така што можеме да 18 00:00:58,780 --> 00:01:03,590 iterate од i до n, должина на s, и на секоја 19 00:01:03,590 --> 00:01:05,760 повторување зголемување i. 20 00:01:05,760 --> 00:01:09,970 >> А потоа внатрешноста на овој циклус, ајде да Прво проверете е моменталниот писмо - 21 00:01:09,970 --> 00:01:12,270 i-тиот писмо на ОК, така да се каже - 22 00:01:12,270 --> 00:01:14,170 на мали букви. 23 00:01:14,170 --> 00:01:23,090 Ако s држач i е поголема од или еднаква во мали букви А, и тоа е помалку 24 00:01:23,090 --> 00:01:26,900 од или еднаква на мали z - 25 00:01:26,900 --> 00:01:30,860 Сега, ако сакаме да го конвертирате мали писмо во големи букви, да се потсетиме првиот што 26 00:01:30,860 --> 00:01:35,810 во ASCII мали букви a е 97 и големи A е 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, цитат, unquote "% c" за печатење сегашниот карактер, по што следи 37 00:02:09,960 --> 00:02:18,500 печатење на сé што е во с заградата јас минус резултат на вршење на мали на 38 00:02:18,500 --> 00:02:22,660 минус големи букви точка-запирка. 39 00:02:22,660 --> 00:02:27,010 Со други зборови, ова parenthetical изразување, малку минус голема, е 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 >> Во меѓувреме, еднаш знам дека разликата, Можам да го одземе од s 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, понуда, unquote обратна коса црта n. 56 00:03:18,440 --> 00:03:22,330 Ајде resave оваа датотека, прекомпајлирате, повторување. 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