C++:
การต่อสตริง
วิธีการ:
ใน C++, เรามีวิธีการรวมสตริงหลายวิธี นี่คือตัวอย่างการใช้ std::string
และตัวดำเนินการบวก (+
):
#include <iostream>
#include <string>
int main() {
std::string hello = "Hello, ";
std::string world = "World!";
std::string greeting = hello + world;
std::cout << greeting << std::endl; // แสดงผล: Hello, World!
return 0;
}
เร็วและง่าย, ใช่ไหม? แต่เรายังสามารถใช้ append()
:
#include <iostream>
#include <string>
int main() {
std::string hello = "Hello, ";
hello.append("World!");
std::cout << hello << std::endl; // แสดงผล: Hello, World!
return 0;
}
หรือแม้กระทั่ง operator+=
ถ้าคุณต้องการ:
#include <iostream>
#include <string>
int main() {
std::string hello = "Hello, ";
hello += "World!";
std::cout << hello << std::endl; // แสดงผล: Hello, World!
return 0;
}
ลึกซึ้งมากขึ้น
ทางประวัติศาสตร์, C++ ได้เข้ามาแทนที่ภาษา C, ซึ่งใช้แอเรย์ของตัวอักษรและฟังก์ชันเช่น strcat()
สำหรับการจัดการสตริง ซึ่งมันยุ่งยากและมีโอกาสเกิดข้อผิดพลาดมากกว่า
C++ สมัยใหม่ได้ปรับปรุงสภาพแวดล้อมด้วย std::string
ซึ่งปลอดภัยกว่า, ง่ายต่อการอ่าน, และให้ตัวเลือกเพิ่มเติม ถ้า std::string
ไม่ใช่ทางของคุณ, ก็ยังมี std::stringstream
หรือแม้กระทั่ง std::format
(จาก C++20) สำหรับผู้ที่ชอบการจัดรูปแบบ
ในการทำงานระดับลึก, การรวมสตริงเกี่ยวข้องกับการจัดสรรหน่วยความจำและการคัดลอก หากทำอย่างไม่ระมัดระวัง, สามารถทำให้ประสิทธิภาพของโปรแกรมของคุณลดลงอย่างมาก อัจฉริยะพอยน์เตอร์และ move semantics ช่วยบรรเทาความเจ็บปวดได้บ้าง
อย่าลืมเกี่ยวกับทางเลือกอื่นๆ - ไลบรารี่เช่น Boost, หรือการจัดการ UTF-8 ด้วย std::string_view
สำหรับการดำเนินการโดยไม่ต้องคัดลอกบน C++ สมัยใหม่
ดูเพิ่มเติม
- อ้างอิงของ C++ สำหรับ
std::string
: https://cplusplus.com/reference/string/string/ - ร่างมาตรฐานของ C++, มาตรฐานสำหรับภาษาโปรแกรม C++: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2020/n4861.pdf
- เรียนรู้เพิ่มเติมเกี่ยวกับ
std::format
: https://en.cppreference.com/w/cpp/utility/format - เอกสารไลบรารี Boost: https://www.boost.org/doc/libs/1_75_0/libs/string_algo/doc/html/index.html