Дејвид Џ MALAN: Да претпоставиме дека јас би сакал да спроведе програма што го поттикнува корисникот за низа и потоа продолжува за да профитираат нивниот придонес, конвертирање на било мали букви дека тие тип во големи букви. Добро, ајде да одиме напред и да спроведување на таа програма. 

Ајде прво да вклучуваат cs50.h проследено од вклучуваат stdio.h. И така што можеме да го користиме strlen, ајде да вклучуваат string.h. 

Ајде следната прогласи главната како int главната празнина и ајде сега продолжи да поттикне корисникот за низа. Printf, ајде да ги поттикне за некои влез. Сега ајде да прогласи низа - ние ќе го нарекуваат е - и чување во него резултат на повик на cs50 библиотека функција GetString. 

Ајде сега продолжи да iterate преку секоја од ликовите во ОК, Капитализиране било мали букви, кои ги гледаме. За int, можам да добијам 0. Да, исто така прогласи n како да е еднаква на стрингот должина на коментарите, така што можеме да iterate од i до n, должина на s, и на секоја повторување зголемување i. 

А потоа внатрешноста на овој циклус, ајде да Прво проверете е моменталниот писмо - i-тиот писмо на ОК, така да се каже - на мали букви. Ако s држач i е поголема од или еднаква во мали букви А, и тоа е помалку од или еднаква на мали z - Сега, ако сакаме да го конвертирате мали писмо во големи букви, да се потсетиме првиот што во ASCII мали букви a е 97 и големи A е 65. Во меѓувреме, мали б е 98, и големи B е 66. 

Ако продолжиме да се погледне во тоа шема, ќе видиме дека мали Буквите се секогаш 32 повисоки вредности од големи букви. Значи, ако сакаме да го конвертирате од мали во големи букви, што треба доволни, навистина, да се одземе 32 од влез на корисникот. Или поопшто, само одземе дека разликата помеѓу мали е и капитал А 

Како да го изразат тоа? Добро, ајде да го направиме тоа во код. Printf, цитат, unquote "% c" за печатење сегашниот карактер, по што следи печатење на сé што е во с заградата јас минус резултат на вршење на мали на минус големи букви точка-запирка. Со други зборови, ова parenthetical изразување, малку минус голема, е ќе се врати на нас на крајот на денот 32. Но, јас не треба да се запамети дека тоа е 32. Можам да им овозможи на компјутерот да дознаам што е разликата помеѓу мали а и капитал А е. 

Во меѓувреме, еднаш знам дека разликата, Можам да го одземе од s заградата јас, кој ќе се она што е претпоставува дека мали букви на пониска вредност, имено вредност која мапи врз еквивалент големи букви. Ајде сега спаси, состави, и да ја стартувате програмата. Направи профитираат точка црта капитализирани. И мојот влез ќе биде здраво. И ние имаме, здраво. 

Сега, мојот брза, очигледно, е малку грдо, затоа што ние сме испуштени една малку на печатење. И да се вратиме и додаваат дека. На самото дно на оваа програма, Јас сум многу едноставно, и во голема мера за естетски цел, ќе се додаде printf, понуда, unquote обратна коса црта n. Ајде resave оваа датотека, прекомпајлирате, повторување. 

Направи профитираат, точка црта профитираат. Повторно, за влез ќе обезбеди "здраво" во сите мали букви и сега притиснете Ентер, и "здраво", многу повеќе чисто печатени.