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

แยกอักขระตัวแรกออกจากสตริงใน C ++ อย่างมีประสิทธิภาพ

บางครั้ง มีความจำเป็นต้องจัดการข้อมูลข้อความจำนวนมหาศาลในสาขาต่างๆ เช่น ภาษาศาสตร์เชิงคำนวณ การเรียนรู้ของเครื่อง และการวิเคราะห์ข้อมูล ดังนั้นในภาษา C++ สตริงและรายการจึงมักใช้สำหรับสิ่งนี้ บางทีเราจำเป็นต้องลบลักษณะที่ปรากฏครั้งแรกของอักขระออกจากสตริงหรือรายการอักขระ ตลอดบทความนี้ เราจะดูวิธีการอื่นในการลบอินสแตนซ์แรกของอักขระออกจากสตริงในภาษา C++ ฟังก์ชันจะลบอักขระตัวแรกของเนื้อหาของสตริง ส่งผลให้สตริงสั้นลง

ตัวอย่างที่ 1:ลบอักขระตัวแรกออกจากสตริงโดยใช้วิธีลบ () ใน C ++

ฟังก์ชัน string::erase เป็นวิธีที่แนะนำในการลบอักขระออกจากสตริงที่มีอยู่ การโอเวอร์โหลดขอบเขตจะแสดงอยู่ในโปรแกรม C++ ต่อไปนี้:

เริ่มจากฟังก์ชันหลักของโปรแกรมกันก่อน ภายในวงเล็บฟังก์ชันหลัก เราได้กำหนดเทมเพลตคลาสมาตรฐานเพื่อแสดงตัวแปรสตริงเป็น "StrValue" ตัวแปรสตริง “StrValue” เริ่มต้นได้ด้วยสตริงคำ เรามีคำสั่ง cout มาตรฐานที่จะพิมพ์สตริงเมื่อมีการเตรียมใช้งาน จากนั้น เราทำการลบข้อมูลบนสตริงนี้ “StrValue”

ภายในวิธีการลบ เราได้ผ่าน 0 และ 1 เป็นอาร์กิวเมนต์แล้ว ค่า “0” คือดัชนีของอักขระตัวแรกในสตริง “StrValue” และค่า “1” คืออักขระตัวแรกที่อยู่ในสตริง หลังจากตำแหน่งที่ระบุ วิธีการลบจะลบความยาวของอักขระที่ระบุออกจากสตริง ในตอนท้าย เรามีคำสั่ง print เพื่อพิมพ์สตริงหลังจากลบอักขระตัวแรกออก

#รวม
#รวม

int หลัก()
{
   std::string StrValue ="ฉันมีความสุข";

   std::cout <<"สตริงก่อน:" <

   StrValue.erase(0, 1);

   std::cout <<"สตริงหลังจาก:" <

   กลับ 0;

ผลลัพธ์ต่อไปนี้แสดงการทำงานของวิธีการลบข้อมูลบนสตริงที่ระบุ อย่างที่คุณเห็น อักขระเริ่มต้นของสตริงถูกลบแล้ว:

แยกอักขระตัวแรกออกจากสตริงใน C ++ อย่างมีประสิทธิภาพ

ตัวอย่างที่ 2:ลบอักขระตัวแรกออกจากสตริงโดยใช้วิธี Iterator ใน C++

ทางเลือกอื่นที่โอเวอร์โหลดของเมธอด Erase() จะลบตัววนซ้ำ ยอมรับตัววนซ้ำเป็นพารามิเตอร์และลบอักขระที่ระบุ โดยการข้ามตัววนซ้ำที่ชี้ไปที่อักขระตัวแรกของสตริง เราสามารถลบอักขระตัวแรกของสตริงได้

เราได้ใช้วิธีการลบในฟังก์ชันหลักของโปรแกรมต่อไปนี้ มีการกำหนดรูปแบบมาตรฐานของสตริงในฟังก์ชันหลัก ตัวแปรสตริงถูกสร้างขึ้นเป็น “StringIs” และเริ่มต้นด้วยสตริงของอักขระ ขั้นแรก เราได้พิมพ์สตริงก่อนที่จะใช้วิธีลบตัววนซ้ำ

จากนั้นเราได้เรียกใช้วิธีการลบของสตริงก่อนหน้า วิธีการลบมีตัววนเริ่มต้นสำหรับสตริง “StrValue” และใช้เพื่อส่งคืนตัววนซ้ำที่ชี้ไปที่อักขระตัวแรกของสตริง เมื่อส่งคืนอักขระตัวแรก วิธีการลบจะลบอักขระออกจากสตริง หลังจากนั้น สตริงจะถูกพิมพ์ โดยลบอักขระตัวแรกออก

#รวม
#รวม

int หลัก()
{

   std::string StringIs ="ตัวอย่างการเขียนโปรแกรม";

   std::cout <<"สตริงก่อน:" <

   StringIs.erase(StringIs.begin());

   std::cout <<"สตริงหลังจาก:" <

   กลับ 0;

เชลล์ได้แสดงเอาต์พุต ซึ่งแสดงสตริงก่อนวิธีลบตัววนซ้ำและหลังจากที่อักขระตัวแรกถูกลบออกจากสตริง

แยกอักขระตัวแรกออกจากสตริงใน C ++ อย่างมีประสิทธิภาพ

ตัวอย่างที่ 3:ตรวจสอบสตริงว่างเพื่อลบอักขระตัวแรกออกจากสตริงใน C++

ก่อนที่จะใช้ฟังก์ชัน string::erase ตรวจสอบให้แน่ใจว่าไม่มีสตริงว่าง หากลำดับอินพุตว่างเปล่า โปรแกรมจะส่งข้อยกเว้นข้อผิดพลาด std::length

โปรแกรมประกอบด้วยฟังก์ชันหลักที่มีการประกาศตัวแปรสตริง “MyStr” สตริงยังเริ่มต้นได้ด้วยอักขระสตริงเมื่อมีการประกาศ ค่าสตริงจะถูกพิมพ์บนเชลล์ หลังจากนั้น เรามีคำสั่ง if ที่ใช้เงื่อนไขกับสตริงที่กำหนด

เราได้เรียกเมธอดว่างภายในเงื่อนไข if เพื่อตรวจสอบว่าสตริงไม่ควรว่างเปล่า จากนั้น ใช้เมธอดตัววนซ้ำลบบนสตริงและลบอักขระตัวแรกออกจากสตริงที่ระบุ สตริงจะถูกพิมพ์บนหน้าจอเชลล์โดยลบอักขระตัวแรกออกจากสตริง

#รวม
#รวม

int หลัก()
{

  std::string MyStr ="สายรุ้ง";

  std::cout <<"สตริงก่อน:" <

  ถ้า (!MyStr.empty()) {

     MyStr.erase(MyStr.begin());

 

  std::cout <<"สตริงตอนนี้:" <

  กลับ 0;

เราได้รับสตริงเอาต์พุตต่อไปนี้

แยกอักขระตัวแรกออกจากสตริงใน C ++ อย่างมีประสิทธิภาพ

ตัวอย่างที่ 4:ลบอักขระตัวแรกด้วยอักขระที่ตรงกันใน C++

ตอนนี้ เรามีตัวอย่างในการลบอักขระเริ่มต้นหากสอดคล้องกับอักขระเฉพาะ โดยใช้ไวยากรณ์ต่อไปนี้:

ตัวแปรสตริงจะเริ่มต้นด้วยค่าสตริงและกำหนดชื่อ "ชื่อ" ในโปรแกรมหลักของต่อไปนี้ เราได้แสดงสตริงด้วยคำสั่ง cout จากนั้นเราได้กำหนดตัวแปรอีกตัวหนึ่งคือ “ch” ด้วยประเภทข้อมูลถ่าน ตัวแปรถ่าน “ch” ได้รับการกำหนดให้อักขระ “k” ตรงกับอักขระตัวแรกของสตริงก่อนหน้า

จากนั้น คำสั่ง if จะใช้เพื่อตรวจสอบเงื่อนไขว่าค่าอักขระ “k” ตรงกับค่าอักขระตัวแรกของสตริง เรามีฟังก์ชัน front() ซึ่งใช้เพื่อรับอักขระตัวแรกในการอ้างอิงของสตริง อักขระเริ่มต้นของสตริงจะถูกตัดออกโดยใช้ตัววนซ้ำ

#รวม
#รวม

int หลัก()
{
  std::string Name ="Kalsoom";
  std::cout <<"ชื่อก่อน:" <<ชื่อ <

  ถ่าน ch ='K';

  ถ้า (Name.front() ==ch) {

      Name.erase(ชื่อ.เริ่มต้น());
 

  std::cout <<"ตั้งชื่อตอนนี้:" <<ชื่อ <

  กลับ 0;

อย่างที่คุณเห็น อักขระตัวแรกที่ถูกลบออกจากสตริงจะเป็นดังนี้:

แยกอักขระตัวแรกออกจากสตริงใน C ++ อย่างมีประสิทธิภาพ

ตัวอย่างที่ 5:ลบอักขระตัวแรกออกจากสตริงโดยใช้ substr() วิธีการใน C++

สตริงได้รับการแก้ไขโดยใช้เมธอด string::erase แทน การใช้ฟังก์ชัน string::substr คุณสามารถดึงข้อมูลสำเนาของสตริงโดยไม่ต้องมีอักขระตัวสุดท้าย

เราได้ใช้ฟังก์ชัน substr บนสตริง "MyString" ในบล็อกเงื่อนไข if ฟังก์ชัน substr ได้ส่งผ่านตำแหน่งอักขระตัวแรกและความยาวของสตริงไปที่ -1 มันจะส่งคืนสตริงที่สร้างขึ้นใหม่จากวัตถุสตริงผู้เรียกที่มีอักขระที่ระบุ

#รวม
#รวม

int หลัก()
{
  std::string MyString ="นำ";

  std::cout <<"สตริงดั้งเดิม:"<

  มาตรฐาน::สตริง n;

  ถ้า (!MyString.empty()) {

     n =MyString.substr(1, MyString.size() - 1);
 

  std::cout <<"สตริงที่เปลี่ยน:" <

  กลับ 0;

เมธอด substr ลบการปรากฏครั้งแรกของอักขระออกจากสตริง ดังที่แสดงในเชลล์ต่อไปนี้:

แยกอักขระตัวแรกออกจากสตริงใน C ++ อย่างมีประสิทธิภาพ

บทสรุป

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