Arduino:
ค้นหาความยาวของสตริง
วิธีทำ:
void setup() {
Serial.begin(9600); // เริ่มการสื่อสารแบบซีเรียล
String myString = "Hello, Arduino!"; // สตริงของคุณที่นี่
int stringLength = myString.length(); // ค้นหาความยาวของสตริง
Serial.print("ความยาวของสตริงคือ: ");
Serial.println(stringLength); // แสดงผลความยาว
}
void loop() {
// ไม่มีอะไรต้องทำที่นี่
}
ตัวอย่างผลลัพธ์:
ความยาวของสตริงคือ: 15
การทลายปัญหา
ในอดีต, โปรแกรมเมอร์ภาษา C ใช้ฟังก์ชัน strlen()
จาก <string.h>
, นับตัวอักษรจนกระทั่งพบตัว null-terminator ในโลกของ Arduino, คลาส String
ทำให้ชีวิตง่ายขึ้นด้วยวิธีการ length()
ที่มีอยู่แล้ว อย่างไรก็ตาม, การใช้งาน String
อาจทำให้หน่วยความจำจำกัดของอุปกรณ์กระจายตัวเป็นเวลานาน ทางเลือกคืออะไร? ใช้อาร์เรย์ของ char (สตริงแบบสไตล์ C), ซึ่งเป็นมิตรกับหน่วยความจำมากกว่าแต่ค่อนข้างยากต่อการจัดการ
สำหรับโปรเจ็กต์ขนาดใหญ่, ควรคำนึงถึงการจัดการหน่วยความจำเสมอ ด้วยวิธีการ length()
, ไม่ต้องการการคำนวณพิเศษ - วัตถุ String
จะติดตามขนาดของมันเอง จากภายใน, length()
เป็นการค้นหาอย่างรวดเร็ว, ไม่ใช่การนับตัวอักษร นั่นคือความมีประสิทธิภาพ! แต่ถ้าคุณมีหน่วยความจำน้อย, กลับไปที่พื้นฐานด้วยอาร์เรย์ของ char และการคำนวณความยาวด้วยตัวเอง, เหมือนกับวันวานของ strlen()
นั่นเอง
ดูเพิ่มเติม
- อ้างอิง Arduino
String
: https://www.arduino.cc/reference/en/language/variables/data-types/stringobject/ - ฟังก์ชัน Arduino
strlen()
สำหรับสตริงแบบสไตล์ C: https://www.arduino.cc/reference/en/language/variables/data-types/string/functions/strlen/ - การอภิปรายเรื่อง
String
กับอาร์เรย์ของ char ใน Arduino: https://forum.arduino.cc/t/string-vs-char-array/678207