สวัสดีและยินดีต้อนรับกลับ ที่นี่เรามีความท้าทายอีกอย่างหนึ่ง ฉันหวังว่าพวกคุณคงคุ้นเคยกับสตริง
อาร์เรย์อักขระ แนวคิดที่สำคัญมากกับค.
แนวคิดในการจัดเก็บตัวอักษรสตริงเหล่านี้ในตัวแปร อาร์เรย์อักขระ เข้าใจว่าเป็นอาร์เรย์
และคุณสามารถเข้าถึงองค์ประกอบต่างๆ ได้อย่างไร
ความท้าทายนี้จะมุ่งเน้นไปที่สิ่งนั้น
เราจะมีความท้าทายอีกอย่างหนึ่งที่จะช่วยให้คุณเข้าใจวิธีใช้ฟังก์ชันสตริงบางส่วน เนื่องจากเราครอบคลุมฟังก์ชันเหล่านั้นเป็นจำนวนมาก
แต่อันนี้มีไว้สำหรับพวกคุณจริงๆ ที่จะทำความคุ้นเคยกับแนวคิดของสตริงอักขระและอาร์เรย์อักขระ
ดังนั้นข้อกำหนดสำหรับงานนี้ คุณจะต้องเขียนโปรแกรมที่ทดสอบความเข้าใจของคุณเกี่ยวกับอาร์เรย์อักขระ
สิ่งที่ผมอยากให้คุณทำคือผมอยากให้คุณเขียนฟังก์ชันจำนวนหนึ่ง
ฉันต้องการให้คุณเขียนฟังก์ชันที่นับจำนวนอักขระในสตริงก่อน
มันจะคล้ายกับระยะกวน แต่คุณกำลังจะนำไปใช้จริงโดยไม่ต้องใช้ฟังก์ชันนั้น
ดังนั้นคุณจึงไม่สามารถใช้ฟังก์ชันไลบรารีสเตอร์ลิงได้
ฟังก์ชันควรใช้อักขระ a เป็นพารามิเตอร์
และควรคืนค่าเป็น int
ดังนั้นคุณก็สามารถมีอาร์เรย์อักขระเป็นพารามิเตอร์ได้
คุณไม่ต้องกังวลเกี่ยวกับพอยน์เตอร์เลยในงานนี้
นี่ก็แค่เอาค่าคงที่พารามิเตอร์มาก็ได้ เพราะมันจะไม่เปลี่ยน
และสิ่งที่คุณจะทำคือคุณจะต้องวนซ้ำผ่านอาร์เรย์
ดังนั้น แม้ว่าคุณจะมีสตริง คุณยังคงสามารถเข้าถึงอักขระแต่ละตัวได้เนื่องจากเป็นอาร์เรย์
ดังนั้นหากคุณสามารถเข้าถึงอักขระแต่ละตัวได้ คุณก็เพียงแค่นับและแสดงมันออกมา
ฟังก์ชันนี้ควรส่งคืนจำนวนเต็ม ซึ่งเป็นความยาว
ฟังก์ชันถัดไปที่ฉันต้องการให้คุณเขียนคือ ฉันต้องการให้คุณใช้งานฟังก์ชันต่อกัน
ซึ่งคุณสามารถเชื่อมสตริงสองสตริงได้
อีกครั้ง ฉันไม่ต้องการให้คุณใช้ฟังก์ชันไลบรารีใด ๆ อย่าใช้ str cat
ฟังก์ชันนี้ควรใช้พารามิเตอร์สามตัว
ผลลัพธ์ และอักขระสองตัวที่คุณต้องการเชื่อม
สองสตริงที่คุณต้องการเชื่อม
ค่าเหล่านั้นสามารถเป็นค่าคงที่ได้เพราะคุณจะไม่เปลี่ยนค่าเหล่านั้น
ผลลัพธ์จะเป็นเพียงแค่สตริงอักขระที่คุณเก็บไว้
สวยเรียบง่าย อีกครั้งคุณไม่จำเป็นต้องจัดการกับตัวชี้
คุณจะมีลูปสองสามรอบ ผ่านแต่ละอาร์เรย์และกำหนดให้กับอาร์เรย์ผลลัพธ์
และสิ่งที่คุณควรส่งคืนสำหรับฟังก์ชันนี้ก็คือไม่มีอะไร
คุณไม่จำเป็นต้องส่งคืนสิ่งใดเพราะคุณกำลังส่งผ่านอาร์เรย์ผลลัพธ์
เราสามารถแก้ไขสิ่งนี้และส่งคืนพอยน์เตอร์และอะไรทำนองนั้น แต่เราจะไม่ทำอย่างนั้นสำหรับงานนี้
นี่จะเชื่อมสองสตริงด้วยตนเอง
ฟังก์ชันที่สาม ฉันต้องการให้คุณเขียนคือการเปรียบเทียบสองสตริงเพื่อดูว่ามันเท่ากันหรือไม่
อีกครั้ง ฉันไม่ต้องการให้คุณใช้ฟังก์ชันไลบรารี ฉันต้องการให้คุณเข้าใจว่าอาร์เรย์อักขระเหล่านี้ทำงานอย่างไร
ฟังก์ชันนี้ควรใช้อาร์เรย์อักขระคงที่สองตัวเป็นพารามิเตอร์
และควรส่งคืนบูลีน ไม่ว่าจะเป็นจริงหรือเท็จ
จริงหากเท่ากัน มิฉะนั้นเป็นเท็จ
สิ่งที่คุณต้องทำคือวนซ้ำผ่านอาร์เรย์และเปรียบเทียบอักขระแต่ละตัว
และคุณควรมองหา null terminator สำหรับสตริงที่เท่ากัน
เนื่องจาก null terminators สามารถกำหนดได้เมื่อคุณต้องการหยุด
เนื่องจากคุณไม่มีขนาดของอาร์เรย์เหล่านี้ ดังนั้น
คุณจะต้องมองหา null terminator เพื่อกำหนดว่าสตริงที่สองเมื่อใด
และคุณควรเปรียบเทียบสตริงที่สองกับสตริงแรก
ดังนั้นคุณต้องหาวิธีการทำเช่นนี้ แต่นี่คือฟังก์ชันสามอย่างเพื่อให้คุณคุ้นเคยกับการสร้างอาร์เรย์อักขระและจัดการหรือเข้าถึงอาร์เรย์เพื่อกำหนดความยาวของการต่อและตรวจสอบว่าเท่ากันหรือไม่
ขอให้โชคดี. ฉันจะให้วิธีแก้ปัญหาในการบรรยายครั้งต่อไป ขอขอบคุณ.