การทำให้ตัวอักษรเป็นตัวพิมพ์ใหญ่ในสตริง

Arduino:
การทำให้ตัวอักษรเป็นตัวพิมพ์ใหญ่ในสตริง

วิธีการ:

Arduino ที่รู้จักกันดีในการโต้ตอบกับฮาร์ดแวร์ ยังรวมถึงความสามารถในการจัดการสตริงพื้นฐานผ่านวัตถุ String ของมัน อย่างไรก็ตาม มันขาดฟังก์ชัน capitalize โดยตรงที่เห็นในภาษาระดับสูง เพราะฉะนั้น เราจึงดำเนินการทำตัวพิมพ์ใหญ่โดยการวนลูปเข้าไปในสตริงและทำการเปลี่ยนแปลงกรณีของตัวอักษร

นี่คือตัวอย่างพื้นฐานที่ไม่ใช้ไลบรารีจากภายนอก:

String capitalizeString(String input) {
  if (input.length() == 0) {
    return ""; // คืนค่าสตริงว่างหากนำเข้าว่าง
  }
  input.toLowerCase(); // แปลงสตริงทั้งหมดเป็นตัวพิมพ์เล็กก่อน
  input.setCharAt(0, input.charAt(0) - 32); // ทำตัวแรกให้เป็นตัวพิมพ์ใหญ่

  // ทำให้ตัวอักษรที่ตามหลังเว้นวรรคเป็นตัวพิมพ์ใหญ่
  for (int i = 1; i < input.length(); i++) {
    if (input.charAt(i - 1) == ' ') {
      input.setCharAt(i, input.charAt(i) - 32);
    }
  }
  return input;
}

void setup() {
  Serial.begin(9600);
  String testStr = "hello arduino world";
  String capitalizedStr = capitalizeString(testStr);
  Serial.println(capitalizedStr); // ผลลัพธ์: "Hello Arduino World"
}

void loop() {
  // ลูปว่าง
}

ส่วนของโค้ดนี้กำหนดฟังก์ชัน capitalizeString ที่แปลงสตริงทั้งหมดให้เป็นตัวพิมพ์เล็กเพื่อมาตรฐานกรณีของมัน จากนั้นจึงทำให้ตัวอักษรตัวแรกและตัวอักษรที่ตามหลังเว้นวรรคเป็นตัวพิมพ์ใหญ่ ซึ่งดำเนินการทำตัวพิมพ์ใหญ่ในแต่ละคำของสตริงนำเข้า โปรดทราบว่าการดำเนินการนี้ใช้การเข้ารหัสอักขระ ASCII เป็นการสมมติและอาจจำเป็นต้องปรับเปลี่ยนสำหรับการสนับสนุน Unicode อย่างเต็มรูปแบบ

ณ ปัจจุบัน ไม่มีไลบรารีจากภายนอกที่ได้รับการยอมรับอย่างกว้างขวางโดยเฉพาะสำหรับการจัดการสตริงในระบบนิเวศ Arduino หลักๆ เนื่องจากระบบนี้มุ่งเน้นไปที่การโต้ตอบกับฮาร์ดแวร์และประสิทธิภาพ อย่างไรก็ตาม ตัวอย่างที่ให้มาเป็นวิธีการตรงไปตรงมาในการบรรลุการทำสตริงเป็นตัวพิมพ์ใหญ่ในสภาพแวดล้อมการเขียนโปรแกรมของ Arduino