Arduino:
การดึงข้อมูลย่อยออกมา
วิธีการ:
สตริงใน Arduino สามารถถูกตัดเป็นส่วนย่อยๆ ได้โดยใช้ substring()
:
void setup() {
Serial.begin(9600);
String phrase = "Hello, Arduino World!";
String greeting = phrase.substring(0, 5);
String location = phrase.substring(7, 19);
Serial.println(greeting); // พิมพ์ "Hello"
Serial.println(location); // พิมพ์ "Arduino World"
}
void loop() {
// ที่นี่ไม่มีอะไรที่ต้องวนซ้ำ.
}
ผลลัพธ์บน Serial Monitor:
Hello
Arduino World
ลงลึก
ก่อนที่ Arduino จะทำให้มันง่าย, โปรแกรมเมอร์ใช้ arrays ของ char และฟังก์ชันเช่น strncpy
ในภาษา C มันไม่ได้เป็นเพียงแค่วัตถุโบราณ, มันยังคงถูกใช้งานสำหรับการดำเนินการระดับต่ำ ฟังก์ชัน substring()
ใน Arduino จริงๆแล้วเป็น wrapper ที่ทำให้มันง่ายขึ้นสำหรับเราเมื่อจัดการกับอ็อบเจกต์ String แต่ต้องระวัง, การใช้ String
อาจนำไปสู่การแตกตัวของหน่วยความจำ หากความมั่นคงเป็นสิ่งสำคัญ, โดยเฉพาะในโปรแกรมที่ทำงานยาวนานหรือซับซ้อน, ควรพิจารณาวิธีการแบบเก่าของ arrays char
.
ทางเลือกต่อ substring()
รวมถึงการจัดการ arrays ของ char โดยตรงหรือฟังก์ชันเช่น strtok()
ซึ่งอาจมีประสิทธิภาพมากขึ้นแต่อาจทำให้คุณต้องจัดการกับโค้ดเพิ่มเติม
ใต้ฮู้ด, substring()
สร้างอ็อบเจกต์ String ใหม่ซึ่งมีอักขระตั้งแต่ดัชนีเริ่มต้นไปจนถึงก่อนดัชนีสิ้นสุด, ซึ่งสามารถข้ามได้หากคุณต้องการทุกอย่างจนจบ
ดูเพิ่มเติม:
- อ้างอิงสตริง Arduino: https://www.arduino.cc/reference/en/language/variables/data-types/stringobject/
- การจัดการหน่วยความจำใน Arduino: https://learn.arduino.cc/programming/variables-and-data-types/memory-management
- วิธี substr ของ
std::string
ใน C++ เพื่อการเปรียบเทียบ: http://www.cplusplus.com/reference/string/string/substr/