บทคัดย่อ
บทแนะนำสั้นๆ นี้เป็นภาพรวมของคลาส C++ String at() ฟังก์ชันเพื่อเข้าถึงลำดับของอักขระจากสตริง ในส่วนถัดไป ผู้อ่านที่ต้องการสามารถผ่านตัวอย่างการเขียนโปรแกรมคลาสสตริงเพื่อทำความเข้าใจการจัดการ at() อย่างละเอียด ฟังก์ชัน
คลาสสตริง
ในแง่การเขียนโปรแกรม สตริงเป็นเรื่องปกติ การแสดงเครื่องหมายอัญประกาศคู่ ประกอบด้วยชุดอักขระ คลาสสตริงก็เป็นคลาสคอนเทนเนอร์เช่นกัน เพื่อวนซ้ำอักขระทั้งหมดโดยใช้ตัวดำเนินการ iterator [] นอกจากนี้ คลาส String ยังจัดการการดำเนินการทั้งหมดที่เกี่ยวข้องกับหน่วยความจำและการยกเลิกค่าว่าง ใครๆ ก็ดำเนินการที่เกี่ยวข้องกับสตริงได้มากมาย เช่น การเปรียบเทียบ การคัดลอก การต่อข้อมูล การค้นหา การเรียงลำดับ และอื่นๆ อีกมากมายโดยใช้ฟังก์ชัน Essentials ของมัน ซึ่งหนึ่งในวิธีการสำคัญที่ () ใช้เพื่อแยกอักขระจากตำแหน่งเฉพาะของสตริง
String.at () วิธีการ
at() เมธอดของคลาส String ออกแบบมาเพื่อเข้าถึงอักขระเฉพาะที่อยู่ในสตริง จะประเมินโดยอัตโนมัติว่า pos เป็นตำแหน่งที่ถูกต้องของอักขระในสตริงที่กำหนด มิฉะนั้น จะแสดงข้อยกเว้น "out_of_range" การใช้ไวยากรณ์มีดังนี้
ไวยากรณ์
char& at (size_type id); const char& at (size_t pos) const;
โครงสร้างโปรแกรม C++ ต่อไปนี้แสดงการใช้คลาส String at() วิธีที่โปรแกรมแรกกำหนดความยาวของสตริงอินพุตแล้ว at() วิธีการดึงอักขระเฉพาะจากตำแหน่งที่กำหนดในสตริงเป็น;
ตัวอย่าง
#include <iostream> using namespace std; void retrieveChar(string str){ char chr; // Calculating the length of string int len = str.length(); // retrieving characters for (int i = 0; i < len; i++) { chr = str.at(i); cout << chr << " "; } } int main(){ retrieveChar("ajaykumar"); return 0; }
ดังที่เห็นในโค้ดด้านบน โค้ดการดำเนินการสตริงทั้งหมดรวมอยู่ใน retrieveChar() เมธอด ต่อมา ซึ่งการเรียกจะถูกส่งไปยังโปรแกรม main() การดำเนินการ หลังจากการคอมไพล์ไฟล์ example.CPP สำเร็จ มันจะสร้างเอาต์พุตต่อไปนี้ซึ่งมีการเข้าถึงอักขระจากสตริงอินพุตของ ann ตามลำดับโดยอาศัยเมธอดคลาส String at() เป็น;
a j a y k u m a r
หมายเหตุความปลอดภัย
อินพุตสตริงจากแหล่งต่างๆ เป็นปัญหาพิเศษสำหรับผู้เชี่ยวชาญด้านความปลอดภัย เนื่องจากมีวิธีการอย่างโจ่งแจ้งเช่นกัน เพื่อเปลี่ยนพฤติกรรมเริ่มต้นและเอาต์พุตของโปรแกรมโดยหันไปใช้เอาต์พุตที่เป็นอันตรายภายนอกและกลยุทธ์แฮ็กแฮ็กแบบพิเศษ แฮ็กเกอร์มักใช้จุดอ่อนในจุดอ่อนในการแสดงสตริงและก่อให้เกิดความเสียหายร้ายแรงต่อโปรแกรม ดังนั้นจึงขอแนะนำอย่างยิ่งเพื่อให้แน่ใจว่ามีมาตรการและแนวทางที่เกี่ยวข้องกับสตริงที่เหมาะสมในโปรแกรมเพื่อไม่ให้เกิดภัยคุกคามใด ๆ
บทสรุป
ดังนั้นเราจึงเจาะลึกลงไปในคลาสสตริงและเมธอดหลัก at() พร้อมกับไวยากรณ์การใช้งานในบัญชีของการเข้าถึงอักขระจากสตริงในลักษณะที่ต่อเนื่องกันในข้อมูลโค้ดดังกล่าว สุดท้ายนี้ เราสัมผัสได้ถึงช่องโหว่ที่เกี่ยวข้องกับสตริงและการเป็นตัวแทนที่อ่อนแอ ซึ่งมักจะนำไปสู่การแสวงหาผลประโยชน์ เช่น บัฟเฟอร์ล้น สคริปต์ข้ามไซต์ สตริงรูปแบบ การกำหนดรูปแบบบัญญัติ และจุดบกพร่องอื่นๆ อีกมากมาย