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

สตริงที่ () ใน C++


บทคัดย่อ

บทแนะนำสั้นๆ นี้เป็นภาพรวมของคลาส 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() พร้อมกับไวยากรณ์การใช้งานในบัญชีของการเข้าถึงอักขระจากสตริงในลักษณะที่ต่อเนื่องกันในข้อมูลโค้ดดังกล่าว สุดท้ายนี้ เราสัมผัสได้ถึงช่องโหว่ที่เกี่ยวข้องกับสตริงและการเป็นตัวแทนที่อ่อนแอ ซึ่งมักจะนำไปสู่การแสวงหาผลประโยชน์ เช่น บัฟเฟอร์ล้น สคริปต์ข้ามไซต์ สตริงรูปแบบ การกำหนดรูปแบบบัญญัติ และจุดบกพร่องอื่นๆ อีกมากมาย