1. TÓM TẮC MỘT SỐ HÀM CHUẨN CỦA TURBO C
1.CÁC HÀM CHUYỂN ĐỎI DỬ LIỆU
* Các hàm sau khai báo trong ctype.h
- tolower
int tolower(int c);
Đổi từ chử hoa sang chử thường.
- toupper
int toupper(int c);
Đổi từ chử thường sang chử hoa.
* Các hàm dưới đây khai báo trong stdlib.h
- atof
double atof(char *s);
Chuyển chuổi s sang giá trị double.
- atoi
int atoi(char *s);
Chuyển chuổi s sang giá trị int.
- atol
long atol(char *s);
Chuyển chuổi s sang giá trị long.
- itoa
char *itoa(int x, char *s, int cs);
Chuyển số nguyên x trong hệ đếm cơ số cs(cs=10: hệ 10, cs=8: hệ 8, cs=16: hệ 16)
sang chuổi và lưu vào vùng nhớ s. Hàm trả về địa chỉ của vùng s.
- ltoa
char *ltoa(long x, char *s, int cs);
Chuyển số kiểu long x trong hệ đếm cơ số cs(cs=10: hệ 10, cs=8: hệ 8, cs=16: hệ 16)
sang chuổi và lưu vào vùng nhớ s. Hàm trả về địa chỉ của vùng s.
- ultoa
char *ultoa(unsigned long x, char *s, int cs);
Chuyển số kiểu unsigned long x trong hệ đếm cơ số cs(cs=10: hệ 10, cs=8: hệ 8,
cs=16: hệ 16) sang chuổi và lưu vào vùng nhớ s. Hàm trả về địa chỉ của vùng s.
2.CÁC HÀM KIỂM TRA KÝ TỰ.
Các hàm dưới đây (khai báo trong ctype.h) dùng để kiểm tra một ký tự có thuộc một
tập ký tự nào đó ko Nếu thuộc thì hàm trả về giá trị khác không, trái lại hàm trả về
không.
- isalnum
int isalnum(int kt);
Kiểm tra kt có phải là ký tự alphanumeric (chử cái hoặc chử số)?
- isalpha
int isalpha(int kt);
Kiểm tra kt có phải là chữ cái ko?
- iscntrl
int iscntrl(int kt);
Kiểm tra kt có phải là ký tự điều khiển (mã từ 0 đến 0x1F hoặc mã bằng 0x7F
1
2. (DEL))?
- isdigit
int isdigit(int kt);
Kiểm tra kt có phải chữ số ko?
- isgraph
int isgraph(int kt);
Kiểm tra kt có phải là ký tự in được và khác ký tự trống (mã từ 0x21 đến 0x7E)?
- islower
int islower(int kt);
Kiểm tra kt có phải là chử cái thường (từ a đến z)?
- isprintf
int isprintf(int kt);
Kiểm tra kt có phải là ký tự in được kể cả ký tự trống (mã từ 0x20 đến 0x7E)?
- ispunct
int ispunct(int kt);
Kiểm tra kt có phải là ký tự dấu chấm câu ko?
- isspace
int isspace(int kt);
Kiểm tra kt có phải là ký tự trống ko?
- isupper
int isupper(int kt);
Kiểm tra kt có phải là chử hoa (từ A đến Z)?
- isxdigit
int isxdigit(int kt);
Kiểm tra kt có phải là chữ số hệ 16 (gồm chử số, các chữ a đến f và từ A đến F)?
3.CÁC HÀM XỬ LÝ CHUỔI KÝ TỰ.
Các hàm này khai báo trong string.h
- strrchr Tìm lần xuất hiện cuối cùng của ký tự trong chuổi.
char *strrchr(char *s, int kt);
Công dụng: Tìm lần xuất hiện cuối cùng của kt trong s. Nếu tìm thấy hàm cho địa chỉ
của ký tự tìm được trong s, trái lại cho NULL.
- strcmpi So sánh hai chuổi không phân biệt chữ hoa và chữ thường.
int strcmpi (char *s1, char *s2);
Hàm làm việc như strcmp nhưng không phân biệt chữ hoa và chữ thường khi so sánh.
- strcspn Tìm độ dài đoạn đầu của chuổi.
int strcspn(char *s, char *s_con);
Hàm cho độ dài đoạn đầu (lớn nhất có thể) của s, mà mọi ký tự của đoạn ko có mặt
trong chuổi s_con.
- strspn Tìm độ dài đoạn đầu của chuổi.
int strcspn(char *s, char *s_con);
Hàm cho độ dài đoạn đầu (lớn nhất có thể) của s, mà mọi ký tự của đoạn đều có mặt
trong chuổi s_con.
- strdup Gấp đôi một chuỗi.
char *strdup(char *s);
Công dụng: hàm cấp một vùng nhớ để đặt hai lần chuổi s. Nếu thành công hàm cho
2
3. địa chỉ vùng này, trái lại hàm cho NULL.
- strncat Ghép thêm n ký tự vào chuổi.
char *strncat(char *s_nhan, char *s, int n);
Công dụng: Ghép n ký tự đầu tiên của s vào s_nhan.
- strncmp So sánh n ký tự đầu của hai chuổi.
int *strncmp(char *s1, char *s2, int n);
Hàm tiến hành so sánh n ký tự đầu tiên của s1 và s2.
- strnicmp So sánh n ký tự đầu của hai chuổi không phân biệt chử hoa với chử thường.
int *strnicmp(char *s1, char *s2, int n);
- strncpy Sao n ký tự.
char *strncpy(char *s_nhan, char *s_gui, int n);
Hàm sao chép n ký tự đầu của s_gui sang s_nhan.
- strnset Gán n lần một ký tự cho một chuổi.
char *strnset(char *s, int c, int n);
Công dụng: ký tự c sẽ đc gán n lần cho s. Kết quả s là một chuổi gồm n ký tự đều là c.
- strrev Đảo ngược chuổi.
char *strrev(char *s);
Công dụng: đảo ngược các ký tự trong chuổi s. Hàm cho địa chỉ chuổi đã đảo.
- strset Đặt một ký tự vào mọi vị trí của chuổi.
int *strset (char *s, int kt);
Công dụng: thay mọi ký tự trong s bằng kt.
5.CÁC HÀM TOÁN HỌC.
Các hàm sau khai báo trong stdlib.h
- abs
int abs(int x);
Tính giá trị tuyệt đối của số nguyên x.
- labs
long int labs(long int x);
Tính giá trị tuyệt đối của số nguyên dài x.
- rand
int rand(void);
Cho một giá trị ngẩu nhiên từ 0 đến 32767.
- random
int random(int n);
Cho một giá trị ngẩu nhiên từ 0 đến n-1.
- srand
void srand(unsigned seed);
Khởi đầu bội số ngẩu nhiên bằng giá trị seed.
- randomize
void randomize(void);
Khởi đầu bội số ngẩu nhiên bằng giá trị ngẩu nhiên.
Chú ý: hàm này dùng hàm time trong <time.h>
Các hàm sau khai báo trong math.h
- ceil
double ceil(double x);
Xác định số nguyên (kiểu double) bé nhất trên x.
3
4. - cos
double cos (double x);
Tính cosine cua x
- sin
double sin(double x);
Tính sine cua x.
- tan
double tan(double x);
Tính tangent của x.
- exp
double exp(double x);
Tính e mủ x.
- fabs
double fabs(double x);
Tính giá trị tuyệt đối của x.
- log
double log(double x);
Tính logarit tự nhiên của x (ln x).
- log10
double log10(double x);
Tính logảit cơ số 10 của x.
- pow
double pow(double x, double y);
Tính x mủ y.
6. CÁC HÀM CẤP PHÁT BỘ NHỚ
Các hàm này khai báo trong alloc.h
- calloc Cấp phát bộ nhớ cho n đối tượng kích cở size byte
void *calloc( unsigned n, unsigned size);
Công dụng: cấp phát vùng nhớ cho n *size byte. Nếu thành công hàm trả về địa chỉ
đầu vùng nhớ được cấp, khi không đủ bộ nhớ để cấp phát hàm trả về NULL.
- malloc Cấp phát vùng nhớ cho n byte
void *malloc( unsigned n);
Công dụng: cấp phát vùng nhớ cho n byte. Nếu thành công hàm trả về địa chỉ đầu
vùng nhớ được cấp, khi không đủ bộ nhớ để cấp phát hàm trả về NULL.
- free Giải phóng vùng nhớ đã cấp phát
void free( void *ptr);
Công dụng: giải phóng vùng nhớ ( đã được cấp phát bởi malloc hoặc calloc) do ptr trỏ
tới.
- realloc Cấp phát lại bộ nhớ
void *realloc( void *ptr, unsigned size);
trong đó:
+ ptr là con trỏ trỏ đến một vùng nhớ đã được cấp phát từ trước
+ size là số byte cần cấp phát lại
4
5. Công dụng: Thay đổi kích thước của vùng nhớ đã cấp phát trước đó. Vùng nhớ mới có
thể có địa chỉ khác so với vùng nhớ cũ. Phần dữ liệu trên vùng nhớ cũ được chuyển
tới vùng nhớ mới và có thể tiếp tục sử dụng chúng.
Khi thành công hàm trả về địa chỉ vùng nhớ mới, trái lại hàm trả về NULL.
CÁC HÀM THỜI GIAN.
Các hàm này khai báo trong time.h
Các cấu trúc liên quan khai báo trong dos.h
- gettime Nhận giờ hệ thống
void gettime( struct time *t );
Kiểu cấu trúc time được định nghĩa trong dos.h như sau
struct time
{
unsigned ti_hour; /* Giờ */
unsigned ti_min; /* Phút */
unsigned ti_sec; /* Giây*/
unsigned ti_hund; /* Miligiây */
};
Công dụng: Hàm nhận giờ hệ thống và đặc vào các thành phần của một biến cấu trúc
kiểu time do con trỏ t trỏ tới
- settime Thiết lập giờ hệ thống
void settime( struct time *t );
Công dụng: Hàm đặc lại giờ hệ thống theo gia trị cá thành phần của một biến cấu trúc
kiểu time do con trỏ t trỏ tới.
- getdate Nhận ngày hệ thống.
void getdate( struct date *d );
Kiểu cấu trúc date được định nghĩa trong dos.h như sau
struct date
{
int da_year; /* Năm */
char da_mon; /* Tháng */
char da_day; /* Ngày */
};
Công dụng: Hàm nhận ngày hệ thống và đặt vào các thành phần của một biến cấu trúc
kiểu date do con trỏ d trỏ tới.
- setdate Thiết lập ngày hệ thống
void setdate( struct date *d );
Công dụng: Hàm đặc lại ngày hệ thống theo gia trị cá thành phần của một biến cấu
trúc kiểu date do con trỏ d trỏ tới.
- time Nhận thời gian hệ thống quy ra giây
long time( long *t );
Công dụng: Hàm cho thời gian hiện tại theo giây bắc đầu tính từ 0 giờ 0 phút 0 giây
(giờ GMT) ngày 01-01-1970.
5
6. Công dụng: Thay đổi kích thước của vùng nhớ đã cấp phát trước đó. Vùng nhớ mới có
thể có địa chỉ khác so với vùng nhớ cũ. Phần dữ liệu trên vùng nhớ cũ được chuyển
tới vùng nhớ mới và có thể tiếp tục sử dụng chúng.
Khi thành công hàm trả về địa chỉ vùng nhớ mới, trái lại hàm trả về NULL.
CÁC HÀM THỜI GIAN.
Các hàm này khai báo trong time.h
Các cấu trúc liên quan khai báo trong dos.h
- gettime Nhận giờ hệ thống
void gettime( struct time *t );
Kiểu cấu trúc time được định nghĩa trong dos.h như sau
struct time
{
unsigned ti_hour; /* Giờ */
unsigned ti_min; /* Phút */
unsigned ti_sec; /* Giây*/
unsigned ti_hund; /* Miligiây */
};
Công dụng: Hàm nhận giờ hệ thống và đặc vào các thành phần của một biến cấu trúc
kiểu time do con trỏ t trỏ tới
- settime Thiết lập giờ hệ thống
void settime( struct time *t );
Công dụng: Hàm đặc lại giờ hệ thống theo gia trị cá thành phần của một biến cấu trúc
kiểu time do con trỏ t trỏ tới.
- getdate Nhận ngày hệ thống.
void getdate( struct date *d );
Kiểu cấu trúc date được định nghĩa trong dos.h như sau
struct date
{
int da_year; /* Năm */
char da_mon; /* Tháng */
char da_day; /* Ngày */
};
Công dụng: Hàm nhận ngày hệ thống và đặt vào các thành phần của một biến cấu trúc
kiểu date do con trỏ d trỏ tới.
- setdate Thiết lập ngày hệ thống
void setdate( struct date *d );
Công dụng: Hàm đặc lại ngày hệ thống theo gia trị cá thành phần của một biến cấu
trúc kiểu date do con trỏ d trỏ tới.
- time Nhận thời gian hệ thống quy ra giây
long time( long *t );
Công dụng: Hàm cho thời gian hiện tại theo giây bắc đầu tính từ 0 giờ 0 phút 0 giây
(giờ GMT) ngày 01-01-1970.
5