>> DAVID เจลัน: สมมติว่าฉันต้องการ จะใช้โปรแกรมที่แจ้งให้
ผู้ใช้สตริงแล้วดำเนิน จะใช้ประโยชน์จากข้อมูลของพวกเขา
แปลงอักษรตัวพิมพ์เล็กใด ๆ ว่าพวกเขาจะเป็นตัวพิมพ์ใหญ่พิมพ์ได้
ดีขอไปข้างหน้าและ ใช้โปรแกรมที่
>> Let 's แรกรวม cs50.h ตาม โดยรวม stdio.h
และเพื่อให้เราสามารถใช้ strlen, ให้รวมถึงสตริง
>> ขอประกาศต่อไปหลักเป็นโมฆะหลักเป็น int และตอนนี้ขอให้ดำเนินการต่อไป
ของผู้ใช้สำหรับสตริง
printf ขอให้พวกเขา สำหรับใส่บาง
ตอนนี้ขอประกาศสตริง -
เราจะเรียกมัน -
และจัดเก็บอยู่ในนั้นเป็นผลมาจากการเรียก GetString งานห้องสมุด CS50
>> ตอนนี้ขอให้ดำเนินการต่อไปย้ำมากกว่ากัน ตัวละครใน s พะวง
อักษรตัวพิมพ์เล็กใด ๆ ที่เราเห็น
สำหรับ int, ฉันได้รับ 0
Let 's ยังประกาศ n เป็นเท่ากับ ความยาวสตริงของ s เพื่อให้เราสามารถ
ย้ำจากฉันจนถึง n, ความยาวของ s และในแต่ละ
เพิ่มขึ้นซ้ำฉัน
>> แล้วด้านในของวงนี้ขอ ตรวจสอบครั้งแรกเป็นจดหมายปัจจุบัน -
จดหมาย i th-s ของดังนั้นการพูด -
อักษรตัวพิมพ์เล็ก
ถ้าฉัน s วงเล็บมีค่ามากกว่าหรือเท่ากับ เป็นตัวพิมพ์เล็กและก็น้อย
กว่าหรือเท่ากับตัวพิมพ์เล็ก z -
ตอนนี้ถ้าเราต้องการที่จะแปลงตัวพิมพ์เล็ก ตัวอักษรที่เป็นตัวพิมพ์ใหญ่, จำแรกที่
ใน ASCII ตัวพิมพ์เล็กเป็น 97 และตัวพิมพ์ใหญ่ 65
ในขณะที่ตัวพิมพ์เล็กข 98, และ B เป็นตัวพิมพ์ใหญ่ 66
>> หากเรายังคงมองไปที่รูปแบบที่ เราจะเห็นว่าตัวพิมพ์เล็ก
ตัวอักษรอยู่เสมอ 32 ค่าที่สูงกว่า กว่าตัวอักษรพิมพ์ใหญ่
ดังนั้นหากเราต้องการที่จะแปลงจากตัวพิมพ์เล็ก เป็นตัวพิมพ์ใหญ่ก็ควร
พอเพียงจริงๆลบ 32 จากการป้อนข้อมูลของผู้ใช้
หรือมากกว่าโดยทั่วไปเพียงแค่ลบที่ ความแตกต่างระหว่างตัวพิมพ์เล็กและ
ทุนเอ
>> วิธีการแสดงที่
ดีขอทำในรหัส
printf, อ้างนำมาอ้าง "c%" เพื่อพิมพ์ ตัวละครในปัจจุบันตามด้วย
การพิมพ์สิ่งที่อยู่ในวงเล็บ s i ลบ ผลของการทำพิมพ์เล็ก
ลบเครื่องหมายอัฒภาคเป็นตัวพิมพ์ใหญ่
ในคำอื่น ๆ สอดนี้ การแสดงออกน้อยลบใหญ่เป็น
จะกลับไปหาเราได้ที่ สิ้นสุดวันที่ 32
แต่ฉันไม่ต้องจำ ว่ามันเป็น 32
ฉันสามารถช่วยให้เครื่องคอมพิวเตอร์ที่จะคิดออก สิ่งที่แตกต่างระหว่างตัวพิมพ์เล็ก
และเงินทุนเป็น
>> ในขณะเดียวกันเมื่อฉันทราบความแตกต่างที่ ฉันสามารถลบออกจาก s
วงเล็บฉันซึ่งจะใช้เวลาในสิ่งที่ สันนิษฐานว่าอักษรตัวพิมพ์เล็กไป
ค่าที่ต่ำกว่าคือค่าที่แผนที่ ลงบนตัวพิมพ์ใหญ่เทียบเท่า
ตอนนี้ขอบันทึกรวบรวม และเรียกใช้โปรแกรมนี้
ให้ใช้ประโยชน์จากจุดเฉือนทุน
และใส่ของฉันจะเป็นสวัสดี
และมีเรามีสวัสดี
>> ตอนนี้ให้ฉันเป็นที่ยอมรับเป็น บิตน่าเกลียดเพราะเราได้
ละเว้นหนึ่งบิตของการพิมพ์
และให้กลับไปเพิ่มที่
ที่ด้านล่างสุดของโปรแกรมนี้ ฉันมากเพียงและส่วนใหญ่เป็น
วัตถุประสงค์ด้านความงามจ​​ะเพิ่ม printf, อ้างเครื่องหมาย n นำมาอ้าง
ลองบันทึกแฟ้มนี้ คอมไพล์, วิ่ง
>> ให้ใช้ประโยชน์จากจุดเฉือนประโยชน์
อีกครั้งสำหรับใส่ฉันจะให้ "สวัสดี" ในทุกกรณีที่ต่ำกว่าและตอนนี้กด Enter,
และ "สวัสดี" พิมพ์มากขึ้นอย่างหมดจด