การดึงข้อมูลย่อยออกมา

C++:
การดึงข้อมูลย่อยออกมา

วิธีการ:

C++ ทำให้การดึงค่าย่อยเป็นเรื่องง่าย std::string เป็นเพื่อนคู่ใจในที่นี้ ด้วยฟังก์ชัน substr() ที่ทำงานหนักส่วนใหญ่ มาดูโค้ดกันเลย:

#include <iostream>
#include <string>

int main() {
    std::string fullString = "Hello, World! Programming in C++ is fun.";
    std::string snippet;

    // ดึงค่า "World" โดยเริ่มที่ดัชนี 7 ด้วยความยาว 5
    snippet = fullString.substr(7, 5);
    std::cout << snippet << std::endl; // ผลลัพธ์: World

    // ดึงค่า "Programming" โดยเริ่มที่ดัชนี 14
    snippet = fullString.substr(14);
    std::cout << snippet << std::endl; // ผลลัพธ์: Programming in C++ is fun.

    return 0;
}

ลงลึก

การดึงค่าย่อยไม่ใช่เรื่องใหม่ โปรแกรมเมอร์ C แบบเก่าใช้ strncpy และการบันทึกด้วยมือ การจัดการสตริงเป็นแหล่งที่มาของข้อผิดพลาดทั่วไป ดังนั้น C++ จึงมุ่งเน้นที่จะทำให้มันเรียบง่ายขึ้น std::string และเมทอด substr ของมันเริ่มต้นมาตั้งแต่ C++98 และได้ช่วยลดความเครียดมาตั้งแต่นั้น

ทางเลือก? แน่นอน คุณอาจจะลงมือทำเองด้วย std::string::iterator หรือกลับไปใช้ฟังก์ชั่นภาษา C ถ้าคุณชอบความตื่นเต้น เทคนิคที่ทันสมัยกว่าอาจจะเกี่ยวข้องกับ string_views สำหรับการเพียงแค่ดูโดยไม่แก้ไข

การใช้งานภายใน? ภายใต้ผิวหนัง, substr บ่อยครั้งที่จัดสรรพื้นที่เก็บข้อมูลใหม่และคัดลอกข้อมูล, ซึ่งไม่ใช่ฟรี มันเบากว่าการต่อสู้กับพอยน์เตอร์ดิบและอาร์เรย์ของ char จากสมัยก่อน, แต่มันก็ไม่ใช่ทันที

ดูเพิ่มเติม

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ std::string และเพื่อนๆ: