Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

เมธอด at() ของสตริงใน C++


บทสรุป

บทช่วยสอนสั้นนี้เป็นภาพรวมของฟังก์ชัน at() ของคลาส String ใน C++ เพื่อเข้าถึงลำดับตัวอักษรจากสตริง ในส่วนต่อไป ผู้อ่านจะได้เห็นตัวอย่างการเขียนโปรแกรมคลาส String เพื่อทำความเข้าใจการใช้งานฟังก์ชัน at() อย่างลึกซึ้ง

คลาส String

ในทางการเขียนโปรแกรม สตริงเป็นการแสดงผลด้วยเครื่องหมายคำพูดคู่ ซึ่งประกอบด้วยชุดของตัวอักษร คลาส String เป็นคลาสคอนเทนเนอร์ที่สามารถวนลูปผ่านตัวอักษรทั้งหมดโดยใช้ตัวดำเนินการ [] นอกจากนี้ คลาส String ยังจัดการการดำเนินการเกี่ยวกับหน่วยความจำและการสิ้นสุดด้วย null อัตโนมัติ สามารถดำเนินการเกี่ยวกับสตริงได้มากมาย เช่น การเปรียบเทียب, การคัดลอก, การต่อสตริง, การค้นหา, การเรียงลำดับ และอื่นๆ โดยใช้ฟังก์ชันสำคัญของมัน ซึ่งหนึ่งในนั้นคือเมธอด at() ที่ใช้สำหรับดึงตัวอักษรจากตำแหน่งเฉพาะในสตริง

เมธอด String.at()

เมธอด at() ของคลาส String ถูกออกแบบมาเพื่อเข้าถึงตัวอักษรเฉพาะที่อยู่ในสตริง มันจะตรวจสอบโดยอัตโนมัติว่า pos เป็นตำแหน่งที่ถูกต้องของตัวอักษรในสตริงที่กำหนดหรือไม่ มิฉะนั้นจะโยนข้อยกเว้น "out_of_range" การใช้งานไวยากรณ์มีดังนี้

ไวยากรณ์

char& at (size_type id); const char& at (size_t pos) const;

โปรแกรม C++ ต่อไปนี้แสดงการใช้งานเมธอด at() ของคลาส String โดยโปรแกรมจะหาความยาวของสตริงนำเข้าก่อน แล้วเมธอด at() จะดึงตัวอักษรเฉพาะจากตำแหน่งที่กำหนดในสตริง

ตัวอย่าง

#include <iostream> using namespace std; void retrieveChar(string str) {     char chr;     // คำนวณความยาวของสตริง     int len = str.length();     // ดึงตัวอักษร     for (int i = 0; i < len; i++) {       chr = str.at(i);       cout << chr << " ";     } } int main() {     retrieveChar("ajaykumar");     return 0; }

ตามที่เห็นในโค้ดข้างต้น โค้ดการดำเนินการสตริงทั้งหมดถูกรวมอยู่ในเมธอด retrieveChar() ซึ่งต่อมาถูกเรียกใช้ในฟังก์ชัน main() หลังจากคอมไพล์ไฟล์ example.CPP เรียบร้อยแล้ว จะได้ผลลัพธ์ดังนี้ ซึ่งตัวอักษรจากสตริงนำเข้าถูกเข้าถึงตามลำดับโดยเมธอด at() ของคลาส String

a j a y k u m a r

หมายเหตุด้านความปลอดภัย

สตริงที่รับเข้ามาจากแหล่งต่างๆ เป็นเรื่องที่นักความปลอดภัยใส่ใจ เพราะอาจให้วิธีการเปลี่ยนแปลงพฤติกรรมเริ่มต้นและผลลัพธ์ของโปรแกรมได้ นักแฮ็กเกอร์มักใช้ช่องโหว่ในการแสดงสตริงเพื่อทำลายโปรแกรม จึงควรมีมาตรการและแนวทางที่เหมาะสมเกี่ยวกับสตริงในโปรแกรมเพื่อป้องกันภัยคุกคาม

สรุป

เราได้ศึกษาลึกลงไปในคลาส String และเมธอดหลัก at() พร้อมไวยากรณ์การใช้งานสำหรับการเข้าถึงตัวอักษรจากสตริงแบบลำดับในโค้ดตัวอย่างข้างต้น สุดท้ายเราได้สัมผัสถึงช่องโหว่และการแสดงสตริงที่อ่อนแอซึ่งมักนำไปสู่การโจมตี เช่น การล้นบัฟเฟอร์, cross-site scripting, format string, canonicalization และบั๊กอื่นๆ ที่สำคัญ