1 00:00:00,000 --> 00:00:00,720 2 00:00:00,720 --> 00:00:03,190 >> DAVID J. Malan: Misalkan saya ingin untuk melaksanakan program yang meminta 3 00:00:03,190 --> 00:00:06,650 pengguna untuk string dan kemudian hasil untuk memanfaatkan masukan mereka, 4 00:00:06,650 --> 00:00:09,790 mengkonversi setiap huruf kecil yang mereka ketik ke huruf besar. 5 00:00:09,790 --> 00:00:11,770 Nah, mari kita pergi ke depan dan melaksanakan program itu. 6 00:00:11,770 --> 00:00:18,760 >> Mari kita pertama termasuk cs50.h diikuti oleh termasuk stdio.h. 7 00:00:18,760 --> 00:00:23,990 Dan agar kita dapat menggunakan strlen, mari kita termasuk string.h. 8 00:00:23,990 --> 00:00:29,860 >> Mari kita selanjutnya menyatakan utama seperti int void main dan mari kita lanjutkan untuk meminta 9 00:00:29,860 --> 00:00:31,600 pengguna untuk string. 10 00:00:31,600 --> 00:00:34,840 Printf, mari kita meminta mereka untuk beberapa masukan. 11 00:00:34,840 --> 00:00:36,460 Sekarang mari kita mendeklarasikan string - 12 00:00:36,460 --> 00:00:37,630 kita akan menyebutnya s - 13 00:00:37,630 --> 00:00:44,010 dan simpan di dalamnya hasil dari panggilan fungsi perpustakaan CS50 GetString. 14 00:00:44,010 --> 00:00:48,850 >> Mari kita lanjutkan sekarang untuk beralih di atas masing-masing dari karakter dalam s, memanfaatkan 15 00:00:48,850 --> 00:00:50,650 setiap huruf kecil yang kita lihat. 16 00:00:50,650 --> 00:00:53,630 Untuk int, saya mendapatkan 0. 17 00:00:53,630 --> 00:00:58,780 Mari kita juga menyatakan n sebagai sama dengan panjang string s sehingga kita bisa 18 00:00:58,780 --> 00:01:03,590 iterate dari i sampai n, maka panjang s, dan pada setiap 19 00:01:03,590 --> 00:01:05,760 kenaikan iterasi i. 20 00:01:05,760 --> 00:01:09,970 >> Dan kemudian dalam lingkaran ini, mari kita cek pertama adalah huruf saat ini - 21 00:01:09,970 --> 00:01:12,270 surat-i th s, sehingga untuk berbicara - 22 00:01:12,270 --> 00:01:14,170 huruf kecil. 23 00:01:14,170 --> 00:01:23,090 Jika s braket i lebih besar dari atau sama huruf kecil, dan itu kurang 24 00:01:23,090 --> 00:01:26,900 dari atau sama dengan z huruf kecil - 25 00:01:26,900 --> 00:01:30,860 Sekarang jika kita ingin mengubah huruf kecil surat untuk huruf besar, mengingat yang pertama 26 00:01:30,860 --> 00:01:35,810 dalam ASCII huruf kecil adalah 97 dan huruf A adalah 65. 27 00:01:35,810 --> 00:01:41,020 Sementara itu, huruf kecil b adalah 98, dan huruf B adalah 66. 28 00:01:41,020 --> 00:01:44,180 >> Jika kita terus melihat pola itu, kita akan melihat bahwa huruf kecil yang 29 00:01:44,180 --> 00:01:49,240 surat selalu 32 nilai yang lebih tinggi daripada huruf besar. 30 00:01:49,240 --> 00:01:53,490 Jadi jika kita ingin mengubah dari huruf kecil untuk huruf besar, seharusnya 31 00:01:53,490 --> 00:01:57,210 cukup, benar-benar, untuk mengurangi 32 dari input pengguna. 32 00:01:57,210 --> 00:02:01,330 Atau lebih umum, hanya kurangi bahwa perbedaan antara a dan huruf kecil 33 00:02:01,330 --> 00:02:02,310 modal A. 34 00:02:02,310 --> 00:02:03,410 >> Cara untuk mengekspresikan itu? 35 00:02:03,410 --> 00:02:04,640 Nah, mari kita lakukan dalam kode. 36 00:02:04,640 --> 00:02:09,960 Printf, kutipan, tanda kutip "% c" untuk mencetak karakter saat ini, diikuti oleh 37 00:02:09,960 --> 00:02:18,500 mencetak apa pun di s braket i dikurangi hasil dari melakukan huruf kecil a 38 00:02:18,500 --> 00:02:22,660 dikurangi huruf A titik koma. 39 00:02:22,660 --> 00:02:27,010 Dalam kata lain, disisipkan ini ekspresi, sedikit minus besar A, adalah 40 00:02:27,010 --> 00:02:29,360 akan kembali ke kami di akhir hari 32. 41 00:02:29,360 --> 00:02:31,230 Tapi aku tidak harus ingat bahwa itu 32. 42 00:02:31,230 --> 00:02:34,150 Saya dapat memungkinkan komputer untuk mencari tahu apa perbedaan antara huruf kecil 43 00:02:34,150 --> 00:02:35,990 dan modal A adalah. 44 00:02:35,990 --> 00:02:39,610 >> Sementara itu, setelah saya tahu perbedaan itu, Aku bisa kurangi dari s 45 00:02:39,610 --> 00:02:43,710 bracket i, yang akan mengambil apa yang mungkin huruf kecil ke 46 00:02:43,710 --> 00:02:48,100 nilai yang lebih rendah, yaitu nilai yang memetakan ke setara huruf besar. 47 00:02:48,100 --> 00:02:51,240 Sekarang mari kita simpan, kompilasi, dan menjalankan program ini. 48 00:02:51,240 --> 00:02:57,760 Membuat memanfaatkan dot slash dikapitalisasi. 49 00:02:57,760 --> 00:03:01,290 Dan masukan saya akan halo. 50 00:03:01,290 --> 00:03:02,920 Dan ada yang kita miliki, halo. 51 00:03:02,920 --> 00:03:05,570 >> Sekarang prompt saya, diakui, adalah agak jelek, karena kita sudah 52 00:03:05,570 --> 00:03:07,810 dihilangkan sedikit pencetakan. 53 00:03:07,810 --> 00:03:09,370 Dan mari kita kembali dan menambahkan bahwa. 54 00:03:09,370 --> 00:03:12,890 Di bagian paling bawah dari program ini, Saya sangat sederhana, dan sebagian besar untuk 55 00:03:12,890 --> 00:03:18,440 tujuan estetika, akan menambahkan printf, kutipan, tanda kutip backslash n. 56 00:03:18,440 --> 00:03:22,330 Mari kita resave file ini, ulang, jalankan kembali. 57 00:03:22,330 --> 00:03:28,090 >> Membuat memanfaatkan, dot slash memanfaatkan. 58 00:03:28,090 --> 00:03:32,540 Sekali lagi, untuk masukan saya akan memberikan "halo" dalam semua huruf kecil dan sekarang tekan Enter, 59 00:03:32,540 --> 00:03:34,550 dan "halo," jauh lebih bersih dicetak. 60 00:03:34,550 --> 00:03:36,432