string

Giới thiệu

string tiếng Anh nghĩa là chuỗi. Trong một chương trình Arduino có 2 cách để định nghĩa chuỗi, cách thứ nhất là sử dụng mảng ký tự để biểu diễn chuỗi. Bài viết này xin mô tả chi tiết về cách thứ nhất.

Cách khai báo

char Str1[15]; // khai bảo chuỗi có độ dài là 15 ký tự.

char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'}; //khai báo chuỗi có độ dài tối đa là 8 ký tự và đặt nó giá trị ban đầu là arduino (7 ký tự). Buộc phải khai báo chuỗi nằm giữa hai dấu nháy đơn nhé! 

char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};//khai báo chuỗi có độ dài tối đa là 8 ký tự và đặt nó giá trị ban đầu là arduino<ký tự null>  (8 ký tự)

char Str4[ ] = "arduino";// Chương trình dịch sẽ tự động điều chỉnh kích thước cho chuỗi Str4 này và ngoài ra bạn phải đặt một chuối trong dấu ngoặc kép

char Str5[8] = "arduino";// Một cách khai báo như Str3
char Str6[15] = "arduino"; // Một cách khai báo khác với độ dài tối đa lớn hơn

CHÚ Ý: mỗi chuỗi đều cần có 1 ký tự NULL, nếu bạn không khai báo ký tự NULL (\0) ở cuối thì trình biên dịch sẽ tự động thêm vào. Đó là lý do vì sao Str2, Str4 lại có độ dài là 8 nhưng chỉ chứa một chuỗi 7 ký tự. Ký tự NULL này để làm gì? Nó dùng để trình biên dịch biết điểm dừng của một chuỗi! Nếu không nó sẽ đọc tiếp những phần bộ nhớ khác (mà phần ấy không lưu chuỗi)

Bạn có thể khai bảo một chuỗi dài như sau:

char myString[] = "This is the first line"
" this is the second line"
" etcetera"

Mảng chuỗi

Khi cần phải thao tác với một lượng lớn chuỗi (ví dụ như trong các ứng dụng trả lời người dùng bằng LCD) thì bạn cần sử dụng một mảng chuỗi. Mà bản chất của chuỗi là mảng các ký tự. Vì vậy để khai báo 1 mảng chuỗi bạn cần sử dụng một mảng 2 chiều!

Để khai báo một mảng chuỗi, rất đơn giản:

char* myStrings[] = {"I'm number 1", "I'm number 2"};

Chỉ cần thêm dấu * sau chữ char và trong dấu ngoặc vuông phía sau myStrings bạn có thể thiết đặt số lượng phần tử tối đa của mảng chuỗi!

Ví dụ

char* myStrings[]={"This is string 1", "This is string 2", "This is string 3",
"This is string 4", "This is string 5","This is string 6"};

void setup(){
Serial.begin(9600);
}

void loop(){
for (int i = 0; i < 6; i++){
   Serial.println(myStrings[i]);
   delay(500);
   }
}

 

Reference Tags: 
lên
12 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Lập trình kéo thả cho các dự án IoT sử dụng Node-Red và iNut Platform

Người nông dân Việt Nam muốn làm ra những sản phẩm nông sản chất lượng tốt, nhưng ngặt nổi với việc sử dụng các giải pháp ở Việt Nam và thế giới vẫn còn quá đắt so với lợi nhuận ròng. Trong quá trình nghiên cứu để tìm ra con đường ứng dụng những thành quả của Cách mạng công nghiệp 4.0, tôi và đội ngũ iNut Platform đã tìm ra một giải pháp lập trình kéo thả với chi phí gần như bằng không để các đối tác nghiên cứu triển khai hệ thống IoT của riêng họ một cách nhanh chóng nhất và an toàn nhất. Thống nhất lại quy chuẩn phát triển IoT với khả năng cung cấp firmware số lượng lớn và không giới hạn cho mọi dự án ở mọi kích cỡ khác nhau, ứng dụng mọi lĩnh vực không chỉ trong lĩnh vực nông nghiệp.

lên
4 thành viên đã đánh giá bài viết này hữu ích.

Làm hiệu ứng LED nhấp nháy rượt đuổi nhau đơn giản với 5 LED

Nhằm mang đến một ví dụ vui về các đèn LED, mình đã viết bài này. Hi vọng, các newbie cảm thấy thích thú với những gì Arduino làm được và cùng chúng tớ phát triển Arduino. Đây là một ví dụ cực kì dễ vì vậy đừng ngại gì mà không lắp thử, bạn nhé!

lên
14 thành viên đã đánh giá bài viết này hữu ích.