Độ dài và Chuỗi đã cắt gọn

Mục đích

Qua ví dụ này bạn sẽ biết cách làm thế nào để lấy độ dài của một chuỗi và cắt gọn chuỗi đó. Bài này chỉ nói về kiến thức lập trình nên bạn chi cần duy nhất một mạch Arduino đã được kết nối tới máy tính là đủ.

Lập trình

Làm thế nào để lấy được độ dài một chuỗi?

String txtMsg = "";                         // biến dùng để lưu chuỗi được gửi từ máy tính
int lastStringLength = txtMsg.length();     // độ dài của chuỗi trước đó

void setup() {
  // Mở cổng Serial ở baudrate 9600
  Serial.begin(9600);
  while (!Serial) {
    ; // đợi mở cổng Serial. Chỉ cần thiết đối với mạch Arduino Leonardo
  }

  // Gửi một thông báo là phần setup đã hoạt động xong.
  Serial.println("\n\nString  length():");
  Serial.println();
}

void loop() {
  // thêm tất cả những ký tự nhận được từ Serial Monitor
  while (Serial.available() > 0) {
    char inChar = Serial.read();
    txtMsg += inChar;
    delay(2); //Bạn hãy thử bỏ dòng này xem :). 
              //Rồi sau đó thêm một bước nữa ở setup, bạn hãy nâng baudrate lên thành 115200!
  }

  // Xuất thông báo
  if (txtMsg.length() != lastStringLength) {
    Serial.println(txtMsg);
    Serial.println(txtMsg.length());
    // Nếu độ dài chuỗi bé hơn 140 thì xuất thông báo này
    if (txtMsg.length() < 140) {
      Serial.println("Day la mot thong bao xuc tich");
    }
    else {
      Serial.println("Thong bao nay qua dai!");
    }
    // lưu lại độ dài của chuỗi này để cho lần nhận dữ liệu tiếp theo
    lastStringLength = txtMsg.length();
  }
}

Làm thế nào để cắt gọn chuỗi ấy?

Nói về thuật ngữ cắt gọn một tí nhé. Cắt gọn sẽ cắt bỏ những ký tự "trắng" ở đầu và cuối chuỗi. Các ký tự trắng bao gồm: Khoảng cách (Space bar) (bảng ASCII 32), tab (bảng ASCII 9), veritical tab (bảng ASCII 11), form feed (bảng ASCII 12), carriage return (bảng ASCII 12), và newline (\n) (bảng ASCII 10).

void setup() {
  //Mở cổng Serial với mức baudrate 9600
  Serial.begin(9600);
  while (!Serial) {
    ; // đợi cổng Serial được mở. Chỉ cần ở mạch Arduino Leonardo
  }

  // gửi một thông báo
  Serial.println("\n\nString  length() & trim():");
  Serial.println();
}

void loop() {
  // đây là một chuỗi với những khoảng trắng
  String stringOne = "Hello!       ";
  Serial.print(stringOne);
  Serial.print("<--- ket thuc chuoi. Do dai la: ");
  Serial.println(stringOne.length());

  // cắt gọn chuỗi
  stringOne.trim();
  Serial.print(stringOne);
  Serial.print("<--- ket thuc chuoi. Do dai la: ");
  Serial.println(stringOne.length());

  // ngừng vòng loop
  while(true);
}

Mã thư viện: 
lên
0 thành viên đã đánh giá bài viết này hữu ích.