Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
sprintf in c là gì? Cách dùng sprintf trong C như thế nào? Bài viết sẽ hướng dẫn bạn chi tiết và cụ thể nhất.
Trong ngôn ngữ lập trình C, hàm sprintf() là một công cụ mạnh mẽ cho phép bạn tạo các chuỗi được định dạng và lưu trữ chúng trong các mảng ký tự hoặc bộ đệm. Hàm này là một phần của thư viện stdio.h và có liên quan chặt chẽ với hàm printf(), được sử dụng để xuất dữ liệu đã định dạng ra console.
Hàm sprintf() đặc biệt hữu ích khi bạn phải xây dựng chuỗi động dựa trên nhiều kiểu dữ liệu khác nhau hoặc thao tác chuỗi theo một định dạng cụ thể. Hàm này có thể được sử dụng trong nhiều ứng dụng khác nhau, chẳng hạn như ghi nhật ký, xử lý dữ liệu và thao tác chuỗi.
Các trường hợp sử dụng phổ biến của hàm sprintf trong C
Để hiểu rõ hơn về chức năng của hàm này, sau đây là các ví dụ về cách sử dụng phổ biến:
Hàm int sprintf(char *str, const char *format,...) trong Thư viện C chuẩn gửi output đã được định dạng tới một chuỗi str.
Dưới đây là phần khai báo cho hàm sprintf() trong C:
int sprintf(char *str, const char *format, ...)
Tham số
str − Đây là con trỏ tới một mảng các phần tử char nơi chuỗi kết quả được lưu trữ.
format − Đây là chuỗi chứa text để được ghi tới buffer. Nó có thể tùy ý chứa các thẻ định dạng có thể được nhúng mà được thay thế bởi các giá trị được xác định trong các tham số bổ sung tiếp theo và được định dạng theo yêu cầu. Nguyên mẫu các thẻ định dạng là %[flags][width][.precision][length]specifier, được giải thích như dưới đây:
| specifier | Kết quả |
|---|---|
| c | Ký tự |
| d hoặc i | Số nguyên hệ thập phân có dấu |
| e | Ký hiệu khoa học (mantissa/exponent) sử dụng ký tự e |
| E | Ký hiệu khoa học (mantissa/exponent) sử dụng ký tự E |
| f | Số thực dấu chấm động hệ thập phân |
| g | Sử dụng rút gọn của %e hoặc %f |
| G | Sử dụng rút gọn của %E hoặc %f |
| o | Số bát phân có dấu |
| s | Chuỗi ký tự |
| u | Số nguyên hệ thập phân không dấu |
| x | Số nguyên hệ thập lục phân không dấu |
| X | Số nguyên hệ thập lục phân không dấu (các chữ cái hoa) |
| p | Địa chỉ con trỏ |
| n | Không in cái gì |
| % | Ký tự |
| flags | Miêu tả |
|---|---|
| - | Căn chỉnh trái vào bên trong độ rộng trường đã cho. Căn chỉnh phải là mặc định |
| + | Ép buộc đặt trước kết quả một dấu cộng hoặc trừ (+ hoặc -) ngay cả với các số dương. Theo mặc định, chỉ có các số âm được đặt trước bởi một dấu - |
| (space) | Nếu không có ký hiệu nào được ghi, thì một khoảng trống sẽ được chèn trước giá trị |
| # | Được sử dụng với các specifier là o, x hoặc X. Giá trị được đặt trước với 0, 0x hoặc 0X tương ứng cho các giá trị khác 0. Sử dụng với e, E và f, nó ép buộc output đã được ghi để thu nhận một con trỏ thập phân ngay cả nếu không có chữ số nào theo sau. Theo mặc định, nếu không có chữ số nào theo sau thì không có con trỏ thập phân được ghi. Sử dụng với g hoặc G, kết quả là giống với e hoặc E nhưng các số 0 ở cuối không bị gỡ bỏ |
| 0 | Đệm vào bên trái (left-pad) của số với các số 0 thay vì bởi các khoảng trống |
| width | Miêu tả |
|---|---|
| (number) | Số ký tự tối thiểu để được in. Nếu giá trị để được in là ngắn hơn số này, thì kết quả được đệm thêm với các khoảng trống. Giá trị không bị cắt ngay cả khi kết quả là quá lớn |
| * | Độ rộng không được xác định trong chuỗi định dạng format, nhưng như một tham số giá trị nguyên bổ sung đặt trước tham số đó mà phải được định dạng |
| .precision | Miêu tả |
|---|---|
| .number | Với các Integer Specifier (d, i, o, u, x, X) − thì Precision xác định số chữ số nhỏ nhất được ghi. Nếu giá trị được ghi là ngắn hơn số này thì kết quả được đệm thêm với các 0 vào đầu. Giá trị không bị cắt ngay cả nếu kết quả là dài hơn. Một precision là 0 nghĩa là không có ký tự nào được ghi cho giá trị 0. Với e, E và f specifier: đây là số chữ số để được in sau điểm thập phân. Với g và G specifier: đây là số chữ số có nghĩa tối đa để được in. Với s specifier: đây là số ký tự tối thiểu để được in. Theo mặc định, tất cả ký tự được in tới khi bắt gặp ký tự null cuối cùng. Với kiểu c: nó không có ảnh hưởng. Khi không có precision nào được xác định, thì mặc định là 1. Nếu period được xác định mà không kèm với một giá trị precision rõ ràng, thì 0 được giả sử |
| .* | Precision không được xác định trong chuỗi định dạng format, nhưng như một tham số giá trị nguyên bổ sung đặt trước tham số đó mà phải được định dạng |
| length | Miêu tả |
|---|---|
| h | Tham số được thông dịch như một short int hoặc unsigned short int (chỉ được áp dụng cho integer specifiers: i, d, o, u, x và X) |
| l | Tham số được thông dịch như một long int hoặc unsigned long int cho integer specifier (i, d, o, u, x và X), và như một wide char hoặc wide char string cho các specifier là c và s |
| L | Tham số được thông dịch như một long double (chỉ được áp dụng cho các floating point specifier: e, E, f, g và G) |
Các tham số bổ sung − Phụ thuộc vào chuỗi định dạng format, hàm này có thể có một dãy tham số bổ sung, mỗi tham số chứa một giá trị để được chèn thay cho mỗi %-tag được xác định trong tham số format, nếu có. Số tham số này nên cùng số lượng với số %-tags mà mong chờ một giá trị.
Trả về giá trị
Nếu thành công, tổng số ký tự đã được ghi sẽ được trả về loại trừ ký tự null được phụ thêm tại cuối chuỗi. Nếu thất bại thì trả về một số âm.
Ví dụ
Chương trình C sau minh họa cách sử dụng của hàm sprintf() trong C:
#include <stdio.h>
#include <math.h>
int main()
{
char str[80];
sprintf(str, "Gia tri cua Pi = %f", M_PI);
puts(str);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
![]()
sprintf() là một hàm thư viện chuẩn C được sử dụng để định dạng và lưu trữ một chuỗi vào một mảng ký tự (bộ đệm). Hàm này hoạt động tương tự như printf(), nhưng thay vì in ra màn hình console, nó ghi kết quả đã định dạng vào bộ đệm chuỗi được chỉ định.
int sprintf(char *str, const char *format, ...);
Nguồn tin: Quantrimang.com:
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Cách bật tắt âm thanh nhấn Caps Lock, Num Lock, Scroll Lock
5 Excel template miễn phí đơn giản hóa các tác vụ phức tạp
4 tính năng giúp bạn tận dụng hết lợi thế của bo mạch chủ
4 mẹo sửa lỗi Windows bị ẩn giúp khôi phục file hỏng nhanh chóng
Tính năng dịch toàn bộ trang web trên Firefox iPhone đã sẵn sàng
Bộ công cụ Windows portable NirLauncher nằm gọn trên USB có thể thay thế hàng chục ứng dụng khác
Lời yêu thương dành cho con yêu
Hóa ra những hành vi thường ngày này của con người lại là bản năng sinh tồn
Cách bỏ tùy chọn gỡ ứng dụng trong Start menu Windows 11
TOP những bài thơ hay về hiện tượng thiên nhiên dành cho Thiếu nhi
Cách tắt Copilot Discover trong bảng Widgets Windows 11
Router 2.4GHz đã lỗi thời vào năm 2025 – Vì sao bạn nên nâng cấp ngay?
Hộp thư mùa thu
Cha vẫn ở đây
Rồi một ngày, bố mẹ sẽ già đi
Sao phải cưới người không yêu
Ly cocktail của ký ức
Ca dao, tục ngữ, thành ngữ về tiết kiệm
Cách sửa lỗi VCRUNTIME140_1.dll not found, is missing trong Windows