Hàm sscanf() trong C
Hàm int sscanf(const char *str, const char *format,...) trong Thư viện C chuẩn đọc input đã được định dạng từ một chuỗi string.
Khai báo hàm sscanf() trong C
Dưới đây là phần khai báo cho hàm sscanf() trong C:
int sscanf(const char *str, const char *format, ...)
Tham số
str -- Đây là chuỗi mà hàm xử lý nó như là source của nó để thu lấy dữ liệu.
format -- Đây là chuỗi chứa một trong các item sau: Ký tự Whitespace, ký tự Non-whitespace và Format specifier
Một format specifier sẽ là dạng: [=%[*][width][modifiers]type=]
Tham số | Miêu tả |
---|---|
* | Đây là một dấu hoa thị bắt đầu (tùy ý) để chỉ rằng dữ liệu là được đọc từ Stream nhưng bị bỏ qua, ví dụ: nó không được lưu trữ trong tham số tương ứng |
width | Xác định số ký tự tối đa được đọc trong hoạt động đọc hiện tại |
modifiers | Xác định một kích cỡ khác với int (trong trường hợp d, I và n), unsigned int (trong trường hợp o,u và x) hoặc float (trong trường hợp e, f và g) cho dữ liệu được trỏ bởi tham số bổ sung tương ứng: h cho short int (cho d, i và n), hoặc unsigned short int (cho o, u và x); l cho long int (cho d, i và n), hoặc unsigned long int (cho o, u và x), hoặc double (cho e, f và g); L cho long double (cho e, f và g) |
type | Một ký tự xác định kiểu dữ liệu được đọc và cách nó được mong đợi được đọc. Bạn theo dõi bảng tiếp theo |
Type specifier cho hàm fscanf
Kiểu | Input | Kiểu tham số |
---|---|---|
c | Ký tự đơn: Đọc ký tự kế tiếp. Nếu một độ rộng khác 1 được xác định, thì hàm này đọc độ rộng các ký tự và lưu trữ chúng trong các vị trí liên tiếp nhau của mảng đã được truyền như là tham số. Không có ký tự null nào được phụ thêm vào cuối | char * |
d | Số nguyên hệ thập phân: Số này tùy ý được đặt trước bởi một dấu + hoặc - | int * |
e, E, f, g, G | Số thực dấu chấm động: Số thập phân chứa một dấu thập phân, được đặt trước tùy ý bởi một dấu + hoặc – và được theo sau tùy ý bởi ký tự e hoặc E và một số thập phân. Hai ví dụ hợp lệ là -732.103 và 7.12e4 | float * |
o | Số nguyên hệ bát phân | int * |
s | Chuỗi ký tự. Nó sẽ đọc các ký tự liên tiếp nhau tới khi tìm thấy một whitespace (có thể là blank, newline (dòng mới) và tab) | char * |
u | Số nguyên hệ thập phân không dấu | unsigned int * |
x, X | Số nguyên hệ thập lục phân | int * |
Các tham số khác -- Hàm này mong đợi một dãy con trỏ như là các tham số bổ sung, mỗi con trỏ chỉ tới một đối tượng có kiểu được xác định bởi %-tag tương ứng của chúng bên trong chuỗi định dạng format, trong cùng thứ tự.
Với mỗi format specifier trong chuỗi định dạng format mà thu nhận dữ liệu, một tham số bổ sung được xác định. Nếu bạn muốn lưu trữ kết quả của một hoạt động sscanf trên một biến thông thường, bạn nên đặt trước định danh identifier của nó với các toán tử tham chiếu, ví dụ: một dấu và (&), giống như: int n; sscanf (str,"%d",&n);
Trả về giá trị
Nếu thành công, hàm trả về số biến được điền. Trong trường hợp có một đầu vào thất bại tước khi bất cứ dữ liệu nào được đọc thành công, hàm trả về EOF.
Ví dụ
Chương trình C sau minh họa cách sử dụng của hàm sscanf() trong C:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int day, year; char weekday[20], month[20], dtm[100]; strcpy( dtm, "Tuesday July 12 2016" ); sscanf( dtm, "%s %s %d %d", weekday, month, &day, &year ); printf("%s %d, %d = %s\n", month, day, year, weekday ); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
Theo Tutorialspoint
Bài trước: Hàm scanf() trong C
Bài tiếp: Hàm fgetc() trong C
Bạn nên đọc
Cũ vẫn chất
-
Code LaLa Land Lục Địa Bí Ẩn mới nhất và cách nhập code
Hôm qua 2 -
Đấu Trường Chân Lý Mobile (TFT Mobile)
-
‘Ghét’ Apple, Mark Zuckerberg vẫn phải dùng Macbook nhưng nó lạ lắm
Hôm qua 1 -
Những câu nói hay về mùa thu, lời chào mùa thu hay và ý nghĩa
Hôm qua -
Cách sao chép định dạng trong Google Docs, Sheets và Slides
Hôm qua -
70 câu ca dao, tục ngữ về học tập hay nhất
Hôm qua -
30 lời chúc sinh nhật chồng yêu ý nghĩa và ngọt ngào
Hôm qua 1 -
Hướng dẫn chuyển sang ngôn ngữ tiếng Việt cho Gmail
Hôm qua -
Hướng dẫn toàn tập Word 2016 (Phần 26): Tạo đồ họa SmartArt
Hôm qua -
Bạn đã sử dụng keo tản nhiệt đúng cách?
Hôm qua