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, และ "สวัสดี" พิมพ์มากขึ้นอย่างหมดจด