Bài viết đăng tại: https://laptrinhcanban.com

Bài viết đăng tại: https://laptrinhcanban.com

Hướng dẫn cách chuyển số thành chuỗi vào C. Bạn sẽ học được cách thực hiện hàm sprintf() và itoa() để chuyển số thành chuỗi trong C sau bài học này.Bạn sẽ xem: chuyển số thành chuỗi vào c

Chúng ta có 2 phương thức để chuyển số thành chuỗi vào C như sau:

Hàm sprintf(): Hàm chuẩn chỉnh để chuyển số thành chuỗi trong CHàm itoa(): đưa int sang string vào C

Chuyển số thành chuỗi vào C | hàm sprintf()

Hàm sprintf() trong C vốn là 1 trong những hàm gồm sẵn vào header file stdio.h, giúp chúng ta tạo tạo một chuỗi đầu ra output từ các biến với kiểu cùng định dạng không giống nhau.

Bạn đang xem: Chuyển số thành chuỗi trong arduino

Trong trường phù hợp chỉ định các biến này là các số, bọn họ đơn giản rất có thể chuyển số thành chuỗi vào C lại và tạo nên thành một chuỗi new chứa kết quả thông qua hàm sprintf().

Cú pháp của hàm sprintf() để dịch số thành chuỗi vào C như sau:

sprintf (target, format, num) ;

Trong đó

target là chuỗi đíchnum là số phải chuyển thành chuỗi

Bằng cách thực hiện hàm sprintf(), chúng ta có thể thực hiện những phép ép kiểu dáng số vào C như chuyển int lịch sự string vào c, chuyển float quý phái string vào C tuỳ theo định hình mà họ chỉ định trong hàm.

Ví dụ nuốm thể:

Copy

#include int main(void) int num1 = 88; float num2 = 10.8; //chuyển int sang string vào C char target1; sprintf(target1, "%d ", num1); printf("%s", target1); //chuyển float lịch sự string vào C char target2; sprintf(target2, "%f ", num2); printf("%s", target2); return 0;

Kết quả:

Copy

8810.800000

Chuyển int quý phái string vào C | hàm itoa()

Hàm itoa() có chức năng chuyển một số nguyên int thành một chuỗi string vào C . Bề ngoài của nó là thêm ký tự chấm dứt chuỗi vào thời gian cuối số hướng đẫn và biến hóa số kia thành chuỗi.

Lưu ý rằng itoa() ko phải là 1 hàm chuẩn chỉnh trong C, cùng nó có thể không hoạt động vào một số môi trường xung quanh lập trình C.

Cú pháp của hàm itoa() để dịch số nguyên thành chuỗi trong C như sau:

itoa (num, target, base) ;

Trong đó

num là số nguyên cần chuyển thành chuỗitarget là chuỗi đích để đựng num sau khoản thời gian chuyển thành chuỗibase là cơ số chuyển đổi, nhằm khẳng định một quý hiếm số nguyên, chuyển đổi nó thành một quý hiếm cơ bản và lưu trữ nó trong một cỗ đệm. Nếu như cơ số là 10 và giá trị là âm, thì chuỗi hiệu quả được đặt trước vệt trừ ( -).

Cách áp dụng hàm itoa() để chuyển số thành chuỗi trong C đơn giản dễ dàng như ví dụ như sau đây:

Copy

#include #include #include int main(void) int number,l; char string; printf("Enter a number: "); scanf("%d", &number); itoa(number,string,10); printf("String value = %s ", string); return 0;

Kết quả:

Copy

Tổng kết

Trên đây Kiyoshi vẫn hướng dẫn chúng ta cách chuyển số thành chuỗi vào C rồi. Để nắm rõ nội dung bài học hơn, chúng ta hãy thực hành thực tế viết lại những ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức và kỹ năng sâu rộng về C trong các bài học tập tiếp theo.

URL Link

https://laptrinhcanban.com/c/lap-trinh-c-co-ban/chuoi-string-trong-c/chuyen-so-thanh-chuoi-trong-c/

Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại Creativecommons và DMCA

Hãy share và thuộc lan tỏa kỹ năng lập trình Nhật bản tại Việt Nam!

HOME › xây dựng c cơ phiên bản dành cho tất cả những người mới học lập trình>>12. Chuỗi string trong c

Bài sauĐảo ngược chuỗi trong CBài tiếpChuyển chuỗi thành số trong C (atoi,atof,atol)
Trong bài viết này Điện Tử Tương Lai vẫn hướng dẫn các bạn chuyển int sang string và biến hóa string sang int trong Arduino. Việc chuyển đổi số nguyên integer thành chuỗi string rất có thể được thực hiện bằng phương pháp sử dụng câu lệnh một dòng.Bạn vẫn xem: chuyển số thành chuỗi trong c

 

Ví dụ 1: Arduino đổi khác số int thành string

int a = 1234;

String my
Str;

my
Str = String (a); // thay đổi số int thành string

 

Ví dụ 2: Arduino thay đổi string thành int

String val = “1234”;

int result = val.to
Int (); // gửi string thành int

 

Tổng quan về string vào C

Trong ngôn từ Arduino C, một string là thứ hạng được sử dụng để lưu lại trữ bất kỳ văn bạn dạng nào bao gồm cả chữ với số và các ký tự đặc biệt. Về mặt nội bộ, nó được thể hiện dưới dạng một mảng các ký tự. Từng chuỗi string được xong bởi một ký tự ‘null’. Bọn chúng được gọi là "string chấm dứt bằng null." Mỗi cam kết tự được để trong vết ngoặc đơn trong những khi một string được đặt trong dấu ngoặc kép. Các chương trình Arduino C thực hiện string và các thuộc tính liên quan. Các chuyển động có thể triển khai trên string bao gồm tính toán độ dài chuỗi, nối những chuỗi, so sánh các chuỗi, v.v.

 

Chuyển đổi kiểu là gì?

Nhiều lúc trong chương trình C, những biểu thức chứa các biến với hằng số của các kiểu tài liệu khác nhau. Đối với mục tiêu tính toán, chúng buộc phải được chuyển đổi sang cùng một kiểu dữ liệu. Lúc bạn chuyển đổi một kiểu tài liệu này thành một kiểu tài liệu khác, phương pháp này được call là biến hóa kiểu.

 

Trong Arduino C, họ có 2 kiểu đổi khác kiểu

 

Chuyển đổi đẳng cấp ngầm định - Kiểu thay đổi kiểu này được trình biên dịch tiến hành tự động. Lập trình sẵn viên không đóng ngẫu nhiên vai trò như thế nào ở đây.

 

Chuyển đổi hình dạng rõ ràng– Ở trên đây lập trình viên chịu trách nhiệm về việc biến hóa kiểu. Điều này cũng khá được gọi là đổi khác loại hình xuất xắc typecasting. Cú pháp như sau.

 

(kiểu dữ liệu) biểu thức;

 

Mục bên 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 dễ dàng để biến đổi một số nguyên thành một kiểu cam kết tự. Ở đây, ‘a’ là kiểu dữ liệu ký tự với b là kiểu tài liệu số nguyên. Cần thiết gán quý hiếm của biến đổi b cho biến hóa a do chúng thuộc những kiểu tài liệu khác nhau. Bởi vì vậy, chúng ta gõ số nguyên b thành cam kết tự trong lấy ví dụ như này. Bây giờ, cả a và b phần lớn thuộc kiểu dữ liệu ký tự.

 

Làm chũm nào để thay đổi string thành int trong Arduino?

 

Phương pháp trước tiên là đưa đổi thủ công chuỗi thành số nguyên.

Phương pháp lắp thêm hai là sử dụng các hàm gồm sẵn.

 

Chuyển thay đổi thủ công

 

Dưới đây là danh sách các ký tự ASCII (American Standard Code for Information Interchange) và quý giá 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ý kết tự trong chuỗi. Để nhận quý hiếm thập phân của mỗi thành phần chuỗi, chúng ta phải trừ nó với mức giá trị thập phân của ký kết tự ‘0.’ các bạn sẽ thấy rõ trong lấy ví dụ như sau.


*

 

Ví dụ 1: công tác chuyển đổi thủ công bằng tay 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 - "0");

 

Serial.println(result);

 

Mã lịch trình được viết trong lốt ngoặc nhọn của hàm main. Phía bên trong hàm vòng lặp, đầu tiên họ định nghĩa cùng khai báo các biến khác biệt cùng với kiểu tài liệu của chúng. Những biến i, len và công dụng được khai báo là kiểu tài liệu số nguyên. Biến tác dụng được khởi tạo bằng 0. Sau đó, hàm serial.print() được điện thoại tư vấn để hiển thị thông báo “số” bên trên màn hình. Vào trường hòa hợp này, chuỗi là một trong những mảng những ký từ được trỏ tới vị num. Sau đó, họ tính độ dài của chuỗi bằng phương pháp sử dụng hàm length(). Tiếp theo, bọn họ lặp qua chuỗi và đưa chuỗi thành cực hiếm thập phân. Cuối cùng, chuỗi được chuyển thành một trong những nguyên cùng được đưa ra màn hình.

 

Ví dụ 2: Chương trình biến hóa string thành int bởi hàm atoi()

 

atoi() là một trong hàm thay đổi kiểu tài liệu chuỗi thành kiểu dữ liệu số nguyên trong ngữ điệu 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ý kết tự. Từ khóa const được sử dụng để làm cho các biến quan yếu sửa đổi. Hàm này trả về một cực hiếm số nguyên sau khoản thời gian thực thi. Hàm atoi() gồm trong file header stdlib.h. Tệp tin header này chứa tất cả các hàm truyền hình dáng được sử dụng trong ngữ điệu C.

 

void setup()

Serial.begin(9600);

 

void loop()

char x = "450";

int result = atoi(x);

Serial.print("integer value of the string is: ");

Serial.println(result);

while(1);

 

Danh sách những hàm biến hóa loại hình tích hợp những giá trị chuỗi thành quý hiếm số được áp dụng trong lịch trình C bao gồm

 

atol() - áp dụng hàm này để biến đổi một chuỗi thành một quý giá số nguyên dài.

Chuỗi được thực hiện để tàng trữ văn bản.Chúng hoàn toàn có thể được áp dụng để hiển thị văn bản trên màn hình LCD hoặc trong cửa sổ Arduino IDE Serial Monitor.Chuỗi cũng có ích để lưu trữ đầu vào của tín đồ dùng.Ví dụ: những ký từ bỏ mà người dùng nhập trên keyboard được kết nối với Arduino.

Có hai các loại chuỗi trong lập trình sẵn Arduino –

Mảng những ký tự, y hệt như các chuỗi được sử dụng trong xây dựng C.Chuỗi Arduino, mang lại phép họ sử dụng một đối tượng người dùng chuỗi trong phiên bản phác thảo.

Trong chương này, bọn họ sẽ tìm hiểu Chuỗi, đối tượng người tiêu dùng và việc thực hiện chuỗi vào các bạn dạng phác thảo Arduino.Đến cuối chương, các bạn sẽ tìm hiểu loại chuỗi như thế nào để thực hiện trong bản phác thảo.

Mảng cam kết tự chuỗi

Loại chuỗi trước tiên mà bọn họ sẽ học tập là chuỗi là một trong những chuỗi các ký từ kiểuchar.Trong chương trước, bọn họ đã học mảng là gì;một chuỗi thường xuyên của cùng một loại thay đổi được tàng trữ trong bộ nhớ.Một chuỗi là 1 mảng các biến char.

Chuỗi là 1 trong những mảng đặc trưng có thêm một phần tử sống cuối chuỗi, luôn có quý hiếm 0 (không).Đây được hotline là “chuỗi ngừng null”.

Ví dụ về mảng ký kết tự chuỗi

Ví dụ này đang chỉ ra biện pháp tạo một chuỗi với in nó ra cửa sổ đo lường và thống kê nối tiếp.

Thí dụ

void setup() char my_str<6>; // an array big enough for a 5 character string Serial.begin(9600); my_str<0> = "H"; // the string consists of 5 characters my_str<1> = "e"; my_str<2> = "l"; my_str<3> = "l"; my_str<4> = "o"; my_str<5> = 0; // 6th array element is a null terminator Serial.println(my_str);void loop() Ví dụ sau đây cho thấy một chuỗi được tạo ra thành từ đông đảo gì;một mảng ký kết tự với những ký tự rất có thể in được với 0 là phần tử cuối cùng của mảng để đã cho thấy rằng đó là nơi chuỗi kết thúc.Chuỗi có thể được in ra hành lang cửa số Arduino IDE Serial Monitor bằng phương pháp sử dụngSerial.println ()và gửi tên của chuỗi.


*

Ví dụ giống như này có thể được viết theo cách dễ ợt hơn như hình dưới đây:

Thí dụ

void setup() char my_str<> = "Hello"; Serial.begin(9600); Serial.println(my_str);void loop() Trong bản phác thảo này, trình biên dịch sẽ thống kê giám sát kích thước của mảng chuỗi và cũng tự động hóa kết thúc chuỗi thông qua số không null.Một mảng nhiều năm sáu thành phần và bao hàm năm cam kết tự theo sau là số 0 được chế tạo ra theo cách hệt nhau như trong phiên bản phác thảo trước.

Thao tác với Mảng chuỗi

Chúng ta bao gồm thể thay đổi một mảng chuỗi vào một bạn dạng phác thảo như được hiển thị trong bạn dạng phác thảo sau.

Thí dụ

void setup() char like<> = "I like coffee and cake"; // create a string Serial.begin(9600); // (1) print the string Serial.println(like); // (2) delete part of the string like<13> = 0; Serial.println(like); // (3) substitute a word into the string like<13> = " "; // replace the null terminator with a space like<18> = "t"; // insert the new word like<19> = "e"; like<20> = "a"; like<21> = 0; // terminate the string Serial.println(like);void loop()

Kết quả

I like coffee & cake
I lượt thích coffee
I like coffee và tea
Bản phác hoạ thảo hoạt động theo phương pháp sau.

Tạo cùng in chuỗi

Trong bản phác thảo sinh sống trên, một chuỗi mới được tạo nên và sau đó được in ra để hiển thị trong hành lang cửa số Serial Monitor.

Rút ngắn chuỗi

Chuỗi được rút ngắn bằng phương pháp thay thế ký tự sản phẩm công nghệ 14 vào chuỗi bởi ký tự null xong bằng 0 (2).Đây là phần tử số 13 vào mảng chuỗi đếm tự 0.

Khi chuỗi được in, toàn bộ các ký kết tự được in đến giá trị trống rỗng mới xong xuôi bằng 0.Các ký tự không giống không biến đổi mất;chúng vẫn sống thọ trong bộ lưu trữ và mảng chuỗi vẫn đang còn cùng kích thước.Sự khác biệt duy độc nhất vô nhị là bất kỳ hàm nào hoạt động với chuỗi vẫn chỉ thấy chuỗi gồm đến ký tự ngừng null đầu tiên.

Thay đổi một từ trong chuỗi

Cuối cùng, bạn dạng phác thảo thay thế sửa chữa từ “bánh” bởi “trà” (3).Đầu tiên, nó phải thay thế dấu dứt null trên <13> bởi một khoảng trắng nhằm chuỗi được phục sinh về format được tạo ban đầu.

Các cam kết tự bắt đầu ghi đè “cak” của trường đoản cú “cake” bởi từ “tea”.Điều này được thực hiện bằng phương pháp ghi đè những ký tự riêng biệt lẻ.Chữ ‘e’ của “cake” được thay thế sửa chữa bằng một cam kết tự kết thúc bằng null mới.Kết quả là chuỗi thực sự được xong xuôi bằng hai ký tự null, ký kết tự nơi bắt đầu ở cuối chuỗi và cam kết tự mới sửa chữa ‘e’ trong “cake”.Điều này không có gì biệt lập khi chuỗi new được in bởi vì hàm in chuỗi dứt in những ký tự chuỗi khi nó gặp dấu chấm cuối null đầu tiên.

Các hàm để làm việc với mảng chuỗi

Bản tổng quát trước đã làm việc chuỗi theo cách thủ công bằng cách truy cập các ký tự trơ thổ địa trong chuỗi.Để làm việc với mảng chuỗi dễ ợt hơn, chúng ta cũng có thể viết những hàm của riêng biệt mình để triển khai như vậy hoặc sử dụng một số trong những hàm chuỗi từthư viện ngôn ngữC.

Dưới đây là danh sách những Hàm để thao tác Mảng Chuỗi

S.No.Functions và Description
1String() The String class, part of the chip core as of version 0019, allows you to use và manipulate strings of text in more complex ways than character arrays do. You can concatenate Strings, append to lớn them, tìm kiếm for & replace substrings, & more. It takes more memory than a simple character array, but it is also more useful. For reference, character arrays are referred khổng lồ as strings with a small ‘s’, & instances of the String class are referred lớn as Strings with a capital S. Cảnh báo that constant strings, specified in “double quotes” are treated as char arrays, not instances of the String class
2char
At()
Access a particular character of the String.
3compare
To()
Compares two Strings, testing whether one comes before or after the other, or whether they are equal. The strings are compared character by character, using the ASCII values of the characters. That means, for example, ‘a’ comes before ‘b’ but after ‘A’. Numbers come before letters.
4concat() Appends the parameter khổng lồ a String.
5c_str() Converts the contents of a string as a C-style, null-terminated string. Lưu ý that this gives direct access lớn the internal String buffer and should be used with care. In particular, you should never modify the string through the pointer returned. When you modify the String object, or when it is destroyed, any pointer previously returned by c_str() becomes invalid and should not be used any longer.
6ends
With()
Tests whether or not a String ends with the characters of another String.
7equals() Compares two strings for equality. The comparison is case-sensitive, meaning the String “hello” is not equal to the String “HELLO”.
8equals
Ignore
Case()
Compares two strings for equality. The comparison is not case-sensitive, meaning the String(“hello”) is equal to lớn the String(“HELLO”).
9get
Bytes()
Copies the string’s characters lớn the supplied buffer.
10index
Of()
Locates a character or String within another String. By default, it searches from the beginning of the String, but can also start from a given index, allowing to locate all instances of the character or String.
11last
Index
Of()
Locates a character or String within another String. By default, it searches from the end of the String, but can also work backwards from a given index, allowing to lớn locate all instances of the character or String.
12length() Returns the length of the String, in characters. (Note that this does not include a trailing null character.)
13remove() Modify in place, a string removing chars from the provided index to lớn the end of the string or from the provided index khổng lồ index plus count.
14replace() The String replace() function allows you to lớn replace all instances of a given character with another character. You can also use replace to replace substrings of a string with a different substring.
15reserve() The String reserve() function allows you lớn allocate a buffer in memory for manipulating strings.
16set
Char
At()
Sets a character of the String. Has no effect on indices outside the existing length of the String.
17starts
With()
Tests whether or not a String starts with the characters of another String.
18to
Char
Array()
Copies the string’s characters lớn the supplied buffer.
19substring() Get a substring of a String. The starting index is inclusive (the corresponding character is included in the substring), but the optional ending index is exclusive (the corresponding character is not included in the substring). If the ending index is omitted, the substring continues khổng lồ the kết thúc of the String.
20to
Int()
Converts a valid String to lớn an integer. The input đầu vào string should start with an integer number. If the string contains non-integer numbers, the function will stop performing the conversion.
21to
Float()
Converts a valid String lớn a float. The input string should start with a digit. If the string contains non-digit characters, the function will stop performing the conversion. For example, the strings “123.45”, “123”, & “123fish” are converted lớn 123.45, 123.00, and 123.00 respectively. Lưu ý that “123.456” is approximated with 123.46. Cảnh báo too that floats have only 6-7 decimal digits of precision & that longer strings might be truncated.
22to
Lower
Case()
Get a lower-case version of a String. As of 1.0, to
Lower
Case() modifies the string in place rather than returning a new.
23to
Upper
Case()
Get an upper-case version of a String. As of 1.0, to
Upper
Case() modifies the string in place rather than returning a new one.
24trim() Get a version of the String with any leading và trailing whitespace removed. As of 1.0, trim() modifies the string in place rather than returning a new one.

Bản phác hoạ thảo tiếp theo sau sử dụng một trong những hàm chuỗi C.

Thí dụ

void setup() char str<> = "This is my string"; // create a string char out_str<40>; // output from string functions placed here int num; // general purpose integer Serial.begin(9600); // (1) print the string Serial.println(str); // (2) get the length of the string (excludes null terminator) num = strlen(str); Serial.print("String length is: "); Serial.println(num); // (3) get the length of the array (includes null terminator) num = sizeof(str); // sizeof() is not a C string function Serial.print("Size of the array: "); Serial.println(num); // (4) copy a string strcpy(out_str, str); Serial.println(out_str); // (5) địa chỉ a string lớn the end of a string (append) strcat(out_str, " sketch."); Serial.println(out_str); num = strlen(out_str); Serial.print("String length is: "); Serial.println(num); num = sizeof(out_str); Serial.print("Size of the array out_str<>: "); Serial.println(num);void loop()

Kết quả

This is my string
String length is: 17Size of the array: 18This is my string
This is my string sketch.String length is: 25Size of the array out_str<>: 40Bản phác thảo chuyển động theo phương pháp sau.

In chuỗi

Chuỗi mới tạo nên in ra cửa sổ Serial Monitor như được triển khai trong các bản phác thảo trước đó.

Nhận độ dài của chuỗi

Hàm strlen () dùng để đưa độ lâu năm của chuỗi.Độ lâu năm của chuỗi chỉ giành cho các ký kết tự hoàn toàn có thể in được cùng không bao hàm dấu hoàn thành rỗng.

Chuỗi cất 17 ký kết tự, vị vậy họ thấy 17 được in trong cửa sổ Serial Monitor.

Nhận chiều nhiều năm của mảng

Toán tử sizeof () được sử dụng để đưa độ dài của mảng gồm chứa chuỗi.Độ dài bao hàm dấu chấm dứt null, do vậy độ dài lớn hơn độ nhiều năm của chuỗi một lần.

sizeof () trông y như một hàm, dẫu vậy về mặt kỹ thuật là 1 trong những toán tử.Nó chưa phải là một trong những phần của thư viện chuỗi C, nhưng được sử dụng trong bạn dạng phác thảo để hiển thị sự khác hoàn toàn giữa kích thước của mảng và kích thước của chuỗi (hoặc độ nhiều năm chuỗi).

Sao chép một chuỗi

Hàm strcpy () được thực hiện để coppy chuỗi str <> vào mảng out_num <>.Hàm strcpy () sao chép chuỗi đồ vật hai được chuyển cho nó vào chuỗi đầu tiên.Một bản sao của chuỗi hiện nay tồn trên trong mảng out_num <>, nhưng chỉ chiếm khoảng chừng 18 phần tử của mảng, bởi vậy chúng ta vẫn còn 22 thành phần char trống trong mảng.Các bộ phận miễn giá tiền này được tìm kiếm thấy sau chuỗi trong bộ nhớ.

Xem thêm: Công Ty Phát Triển Chatbot Ở Dubai Với Ai, Ceo Openai Hối Hận Vì Phát Hành Chatgpt Quá Sớm

Chuỗi đang được coppy vào mảng để bọn họ có thêm một trong những khoảng trống vào mảng để thực hiện trong phần tiếp theo sau của bản phác thảo, có nghĩa là thêm một chuỗi vào thời gian cuối chuỗi.