Trong bài viết này Điện Tử Tương Lai sẽ hướng dẫn bạn chuyển int sang string và chuyển đổi string sang int trong Arduino. Việc chuyển đổi số nguyên integer thành chuỗi string có thể được thực hiện bằng cách sử dụng câu lệnh một dòng.
Ví dụ 1: Arduino chuyển đổi số int thành string
int a = 1234;
String myStr;
myStr = String (a); // Chuyển đổi số int thành string
Ví dụ 2: Arduino chuyển đổi string thành int
String val = “1234”;
int result = val.toInt (); // Chuyển string thành int
Tổng quan về string trong C
Trong ngôn ngữ Arduino C, một string là kiểu được sử dụng để lưu trữ bất kỳ văn bản nào bao gồm cả chữ và số và các ký tự đặc biệt. Về mặt nội bộ, nó được biểu thị dưới dạng một mảng các ký tự. Mỗi chuỗi string được kết thúc bởi một ký tự ‘null’. Chúng được gọi là "string kết thúc bằng null." Mỗi ký tự được đặt trong dấu ngoặc đơn trong khi một string được đặt trong dấu ngoặc kép. Nhiều chương trình Arduino C sử dụng string và các thuộc tính liên quan. Các hoạt động có thể thực hiện trên string bao gồm tính toán độ dài chuỗi, nối các chuỗi, so sánh các chuỗi, v.v.
Chuyển đổi kiểu là gì?
Nhiều khi trong chương trình C, các biểu thức chứa các biến và hằng số của các kiểu dữ liệu khác nhau. Đối với mục đích tính toán, chúng cần được chuyển đổi sang cùng một kiểu dữ liệu. Khi bạn chuyển đổi một kiểu dữ liệu này thành một kiểu dữ liệu khác, phương pháp này được gọi là chuyển đổi kiểu.
Trong Arduino C, chúng ta có 2 kiểu chuyển đổi kiểu
Chuyển đổi kiểu ngầm định - Kiểu chuyển đổi kiểu này được trình biên dịch thực hiện tự động. Lập trình viên không đóng bất kỳ vai trò nào ở đây.
Chuyển đổi kiểu rõ ràng– Ở đây lập trình viên chịu trách nhiệm về việc chuyển đổi kiểu. Điều này cũng được gọi là chuyển đổi loại hình hay typecasting. Cú pháp như sau.
(kiểu dữ liệu) biểu thức;
Mục trên được gọi là toán tử dôit kiểu. Hãy xem ví dụ này.
char a;
int b;
a = (char) b;
Đây là một cách đơn giản để chuyển đổi một số nguyên thành một kiểu ký tự. Ở đây, ‘a’ là kiểu dữ liệu ký tự và b là kiểu dữ liệu số nguyên. Không thể gán giá trị của biến b cho biến a vì chúng thuộc các kiểu dữ liệu khác nhau. Vì vậy, chúng ta gõ số nguyên b thành ký tự trong ví dụ này. Bây giờ, cả a và b đều thuộc kiểu dữ liệu ký tự.
Làm thế nào để chuyển đổi string thành int trong Arduino?
Đôi khi, một số được nhập dưới dạng một chuỗi. Để sử dụng nó cho bất kỳ phép toán nào, chúng ta phải chuyển đổi string thành int. Có hai cách để làm điều này.
Phương pháp đầu tiên là chuyển đổi thủ công chuỗi thành số nguyên.
Phương pháp thứ hai là sử dụng các hàm có sẵn.
Chuyển đổi thủ công
Dưới đây là danh sách các ký tự ASCII (American Standard Code for Information Interchange) và giá trị thập phân của chúng.
Giá trị thập phân ký tự ASCII
0 = 48
1 = 49
2 = 50
3 = 51
4 = 52
5 = 53
6 = 54
7 = 55
8 = 56
9 = 57
Các số được lưu trữ ở định dạng ký tự trong chuỗi. Để nhận giá trị thập phân của mỗi phần tử chuỗi, chúng ta phải trừ nó với giá trị thập phân của ký tự ‘0.’ Bạn sẽ thấy rõ trong ví dụ sau.
Ví dụ 1: Chương trình chuyển đổi thủ công một chuỗi thành một số nguyên
void setup()
{
Serial.begin(9600);
}
void loop()
{
String num = "1234";
int i, len;
int result=0;
Serial.print("Number:");
Serial.println(num);
len = num.length();
for(i = 0; i
{
result = result * 10 + (num [i] - '0');
}
Serial.println(result);
}
Mã chương trình được viết trong dấu ngoặc nhọn của hàm main. Bên trong hàm vòng lặp, đầu tiên chúng ta định nghĩa và khai báo các biến khác nhau cùng với kiểu dữ liệu của chúng. Các biến i, len và kết quả được khai báo là kiểu dữ liệu số nguyên. Biến kết quả được khởi tạo bằng 0. Sau đó, hàm serial.print() được gọi để hiển thị thông báo “số” trên màn hình. Trong trường hợp này, chuỗi là một mảng các ký tự được trỏ tới bởi num. Sau đó, chúng ta tính độ dài của chuỗi bằng cách sử dụng hàm length(). Tiếp theo, chúng ta lặp qua chuỗi và chuyển chuỗi thành giá trị thập phân. Cuối cùng, chuỗi được chuyển thành một số nguyên và được đưa ra màn hình.
Ví dụ 2: Chương trình chuyển đổi string thành int bằng hàm atoi()
atoi() là một hàm chuyển đổi kiểu dữ liệu chuỗi thành kiểu dữ liệu số nguyên trong ngôn ngữ C. Cú pháp của hàm này như sau
int atoi((const char * str);
Ở đây, str là kiểu con trỏ tới một ký tự. Từ khóa const được sử dụng để làm cho các biến không thể sửa đổi. Hàm này trả về một giá trị số nguyên sau khi thực thi. Hàm atoi() có trong file header stdlib.h. File header này chứa tất cả các hàm truyền kiểu được sử dụng trong ngôn ngữ C.
void setup()
{
Serial.begin(9600);
}
void loop()
{
char x[10] = "450";
int result = atoi(x);
Serial.print("integer value of the string is: ");
Serial.println(result);
while(1);
}
Danh sách các hàm chuyển đổi loại hình tích hợp các giá trị chuỗi thành giá trị số được sử dụng trong chương trình C bao gồm
atof() - Hàm này được sử dụng để chuyển đổi chuỗi thành giá trị dấu phẩy động.
atol() - Sử dụng hàm này để chuyển đổi một chuỗi thành một giá trị số nguyên dài.
Hotline: 0979 466 469