Девід Дж. Малан: Припустимо, що я хотів би реалізувати програму, яка запитує користувач на рядок, а потім переходить капіталізувати свій внесок, перетворенні будь-яких малих літер що вони друкують у верхній регістр. Ну, давайте йти вперед і реалізувати цю програму. Давайте спочатку включають cs50.h потім по включають stdio.h. І так, що ми можемо використовувати STRLEN, давайте включимо string.h. Давайте наступне оголосити головний як десяткового головний порожнечу і давайте тепер перейдемо до підкажуть користувач для рядка. Printf, давайте спонукати їх для деяких вхідних сигналів. Тепер давайте оголосити рядок - ми будемо називати це з - і зберігати в ньому результат виклику бібліотека CS50 функція GetString. Тепер займемося перебрати кожен з персонажів с, С капіталізацією будь-які малі літери, які ми бачимо. Для внутр, я отримую 0. Давайте також оголосити п як рівна довжина рядка з тим щоб ми могли НЕ перебрати з I аж до п, Довжина з, і на кожному Крок ітерації я. А потім всередині цієї петлі, давайте Перша перевірка поточний лист - г-я буква з, так би мовити - рядкова буква. Якщо з кронштейн я більше або дорівнює в нижній регістр, і це менше, або дорівнює рядкової г - Тепер, якщо ми хочемо перетворити в нижній регістр Лист у верхній регістр, нагадаємо спочатку, що в ASCII рядкові 97 і у верхньому регістрі 65. Тим часом, в нижньому регістрі б 98, і у верхньому регістрі B 66. Якщо ми будемо продовжувати дивитися на цій моделі, ми побачимо, що в нижньому регістрі листи завжди 32 значення вище ніж великими літерами. Так що якщо ми хочемо конвертувати з нижнього регістру у верхній регістр, він повинен вистачає, дійсно, відняти 32 з користувальницької введення. Або в більш загальному, просто відняти, що Різниця між рядкової а і а капітал А. Як виразити це? Ну, давайте зробимо це в коді. Printf, цитую, кінець цитати "% С" для друку поточний символ, а потім друк все це в и кронштейна Я мінус результат того, в нижньому регістрі A мінус верхній регістр з комою. Іншими словами, цей дужках вираз, трохи мінус великий, це збирається повернутися до нас в кінець день 32. Але у мене немає, щоб пам'ятати що це 32. Я можу дозволити комп'ютер, щоб з'ясувати, в чому різниця між малими літерами і капіталу є. Тим часом, як тільки я знаю, що різниця, Я можу відняти його з з Кронштейн я, який відбудеться в чому імовірно мала літера в Менше значення, а саме значення, карти на заголовній еквіваленті. Давайте тепер зберегти, скомпілювати, і запустити цю програму. Зробити вигоду точка слеш капіталізуються. І мій внесок буде привіт. І там у нас є, привіт. Тепер мій запит, за загальним визнанням, є трохи потворні, тому що ми опущений один біт друку. І давайте повернемося і додати, що. У самому низу цієї програми, Я дуже просто, і в значній мірі для естетичне призначення, збираюся додати Printf, цитата, кінець цитати зворотний слеш н. Давайте збережіть цей файл, перекомпілювати, повтор. Зробити вигоду, точка слеш вигоду. Знову ж, для введення я приведу "привіт" в нижньому регістрі і тепер натисніть Введення, і "привіт", набагато більш акуратно надрукований.