>> Девід Дж. Малан: Припустимо, що я хотів би реалізувати програму, яка запитує
користувач на рядок, а потім переходить капіталізувати свій внесок,
перетворенні будь-яких малих літер що вони друкують у верхній регістр.
Ну, давайте йти вперед і реалізувати цю програму.
>> Давайте спочатку включають 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, цитата, кінець цитати зворотний слеш н.
Давайте збережіть цей файл, перекомпілювати, повтор.
>> Зробити вигоду, точка слеш вигоду.
Знову ж, для введення я приведу "привіт" в нижньому регістрі і тепер натисніть Введення,
і "привіт", набагато більш акуратно надрукований.