Chuyển Số Thành Chuỗi Trong C (sprintf, Itoa)
Có thể bạn quan tâm
Hướng dẫn cách chuyển số thành chuỗi trong C. Bạn sẽ học được cách sử dụng hàm sprintf() , snprintf() và itoa() để chuyển số thành chuỗi trong C sau bài học này.
Chúng ta có 2 phương pháp để chuyển số thành chuỗi trong C như sau:
- Hàm sprintf(): Hàm chuyển số thành chuỗi trong C theo format
- Hàm snprintf(): Hàm chuyển số thành chuỗi trong C chỉ định độ dài chuỗi kết quả
- Hàm itoa(): Chuyển int sang string trong C
Chuyển số thành chuỗi trong C theo format | hàm sprintf()
Hàm sprintf() trong C vốn là một hàm có sẵn trong header file stdio.h, giúp chúng ta tạo tạo một chuỗi đầu ra từ các biến với kiểu và định dạng khác nhau.
- Xem thêm: Bốn cách xuất dữ liệu trong C
Trong trường hợp chỉ định các biến này là các số, chúng ta đơn giản có thể chuyển số thành chuỗi trong C lại và tạo thành một chuỗi mới chứa kết quả thông qua hàm sprintf().
Cú pháp của hàm sprintf() để chuyển số thành chuỗi trong C như sau:
sprintf (target, format, num) ;
Trong đó
- target là chuỗi đích
- num là số cần chuyển thành chuỗi
- format là chuỗi định dạng của số đó. Tuỳ thuộc số này là số nguyên hay số thực mà sẽ có định dạng tương ứng. Xem thêm: Định dạng nhập xuất trong C.
Bằng cách sử dụng hàm sprintf(), chúng ta có thể thực hiện các phép ép kiểu số trong C như chuyển int sang string trong c, chuyển float sang string trong C tuỳ theo định dạng mà chúng ta chỉ định trong hàm.
Ví dụ cụ thể:
| #include <stdio.h>int main(void) { int num1 = 88; float num2 = 10.8; //chuyển int sang string trong C char target1[100]; // Đảm bảo đủ kích thước cho chuỗi kết quả sprintf(target1, "%d\n", num1); printf("%s", target1); //chuyển float sang string trong C char target2[100]; // Đảm bảo đủ kích thước cho chuỗi kết quả sprintf(target2, "%f\n", num2); printf("%s", target2); return 0;} |
Kết quả:
| 8810.800000 |
Trong các ví dụ trên, chúng ta sử dụng sprintf() để chuyển các số nguyên hoặc số thực tahnhf dãng chuỗi và lưu kết quả vào mảng target. Hàm sprintf hoạt động giống như printf, nhưng thay vì in ra màn hình, nó lưu kết quả vào chuỗi.
Một điểm cần lưu ý là bạn phải cung cấp đủ kích thước cho mảng target để chứa chuỗi kết quả, tránh tràn bộ nhớ.
Chuyển Số Nguyên hoặc Số Thực Bất Kỳ Thành Chuỗi | hàm snprintf
Nếu bạn muốn chuyển số nguyên hoặc số thực bất kỳ thành chuỗi mà không cần quan tâm đến định dạng số sau dấu thập phân, bạn có thể sử dụng hàm snprintf và đặt độ dài của chuỗi đầu ra là 0. Hàm snprintf sẽ trả về độ dài của chuỗi đầu ra mà không cần ghi dữ liệu vào chuỗi. Dưới đây là ví dụ:
| #include <stdio.h>int main() { double so_thuc = 3.14159; char chuoi[20]; // Đảm bảo đủ kích thước cho chuỗi kết quả int do_dai = snprintf(chuoi, 0, "%f", so_thuc); char chuoi_ket_qua[do_dai + 1]; // +1 cho ký tự null kết thúc chuỗi snprintf(chuoi_ket_qua, do_dai + 1, "%f", so_thuc); printf("Chuỗi kết quả: %s\n", chuoi_ket_qua); return 0;} |
Trong ví dụ này, chúng ta sử dụng snprintf hai lần. Lần đầu để tính độ dài của chuỗi kết quả (do_dai) và lần thứ hai để chuyển đổi số thực thành chuỗi với độ dài đúng.
Kết quả:
| Chuỗi kết quả: 3.141590 |
Chuyển Số Thành Chuỗi Với Độ Chính Xác Xác Định | hàm snprintf
Khi bạn muốn chuyển số thực thành chuỗi với độ chính xác xác định sau dấu thập phân (số lẻ) trong C, bạn có thể sử dụng hàm snprintf với định dạng chuỗi. Dưới đây là ví dụ:
| #include <stdio.h>int main() { double so_thuc = 3.14159; char chuoi[20]; // Đảm bảo đủ kích thước cho chuỗi kết quả int so_chu_so_sau_thap_phan = 2; // Độ chính xác 2 số sau dấu thập phân snprintf(chuoi, sizeof(chuoi), "%.*lf", so_chu_so_sau_thap_phan, so_thuc); printf("Chuỗi kết quả: %s\n", chuoi); return 0;} |
Trong ví dụ này, chúng ta sử dụng định dạng chuỗi "%.*lf" để chỉ định số lượng chữ số sau dấu thập phân. Chúng ta cũng cung cấp độ chính xác thông qua biến so_chu_so_sau_thap_phan. Kết quả sẽ được định dạng với độ chính xác theo yêu cầu của bạn.
Kết quả:
| Chuỗi kết quả: 3.14 |
Chuyển int sang string trong C | hàm itoa()
Hàm itoa() có tác dụng chuyển một số nguyên int thành một chuỗi string trong C . Cơ chế của nó là thêm ký tự kết thúc chuỗi \0 vào cuối số chỉ định và biến số đó thành chuỗi.
Lưu ý rằng itoa() không phải là một hàm chuẩn trong C, và nó có thể không hoạt động trong một số môi trường lập trình C.
Cú pháp của hàm itoa() để chuyển 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ỗi
- target là chuỗi đích để chứa num sau khi chuyển thành chuỗi
- base là cơ số chuyển đổi, nhằm xác định một giá trị số nguyên, chuyển đổi nó thành một giá trị cơ bản và lưu trữ nó trong một bộ đệm. Nếu cơ số là 10 và giá trị là âm, thì chuỗi kết quả được đặt trước dấu trừ ( -).
Cách sử dụng hàm itoa() để chuyển số thành chuỗi trong C đơn giản như ví dụ sau đây:
| #include <stdio.h>#include <stdlib.h>#include <string.h>int main(void){ int number,l; char string[20]; printf("Enter a number: "); scanf("%d", &number); itoa(number,string,10); printf("String value = %s\n", string); return 0;} |
Kết quả:
| >>Enter a number: 15String value: 15 |
Tổng kết
Việc chuyển số thành chuỗi và ngược lại là một phần quan trọng của lập trình, đặc biệt là khi bạn cần giao tiếp với các tệp tin, giao diện người dùng, hoặc cơ sở dữ liệu. Trong ngôn ngữ lập trình C, bạn có các công cụ như sprintf, snprintf và itoa để thực hiện việc này một cách hiệu quả. Hãy luôn kiểm tra và xử lý đặc biệt cho trường hợp đặc biệt, như tràn bộ nhớ hoặc độ chính xác số lẻ, để đảm bảo tính an toàn và đáng tin cậy của ứng dụng của bạn.
URL Link
https://laptrinhcanban.com/c/lap-trinh-c-co-ban/chuoi-string-trong-c/chuyen-so-thanh-chuoi-trong-c/
Từ khóa » ép Kiểu Int Sang String Trong C
-
Bài 60. Chuyển Kiểu Int Sang String Trong C/C++
-
Chuyển Int Sang String Trong C++
-
Ép Kiểu Trong C++ - Techacademy
-
Làm Thế Nào để Chuyển Kiểu Dữ Liệu Int Sang String Trong C++?
-
Lập Trình C: Chuyển Từ Kiểu Int Sang Chuỗi | V1Study
-
Một Số Cách Convert Number Sang String Trong C++ | CppDeveloper
-
Chuyển Từ Int Sang String Và String Sang Int Trong Arduino
-
Phương Pháp ép Kiểu Dữ Liệu Trong C++
-
Ép Kiểu Trong C - VietTuts
-
Làm Thế Nào để Chuyển đổi Một Int Thành Chuỗi Trong C? - HelpEx
-
[ C\C++ ] Chuyển đổi Từ Số Thực Sang Chuỗi Kí Tự Trong C/C++
-
Cách ép Kiểu Dữ Liệu Trong Python - Freetuts
-
Convert Integer Sang String Hoặc Char Như Thế Nào? - Dạy Nhau Học
-
Cách Chuyển Kiểu String Sang Int Trong C - Chuyển Số Thành Chuỗi ...