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/