Giáo trình Lập trình C căn bản Trang 132
Hanoi Aptech Computer Education Center
Bài 16 :
MỘT SỐ HÀM CHUẨN THƯỜNG DÙNG
16.1 Các hàm chuyển đổi dữ liệu
16.1.1 atof
double atof(const char *s);
Phải khai báo math.h hoặc stdlib.h
Chuyển đổi 1 chuỗi sang giá trị double.
Ví dụ: float f;
char *str = "12345.67";
f = atof(str);
K
ết quả f = 12345.67;
16.1.2 atoi
int atoi(const char *s);
Phải khai báo stdlib.h
Chuyển đổi 1 chuỗi sang giá trị int.
Ví d
ụ: int i;
char *str = "12345.67";
i = atoi(str);
K
ết quả i = 12345
16.1.3 itoa
char *itoa(int value, char *string, int radix);
Phải khai báo stdlib.h
Chuyển đổi số nguyên value sang chuỗi string theo cơ số radix.
Ví dụ: int number = 12345;
char string[25];
itoa(number, string, 10); //chuy
ển đổi number sang chuỗi theo cơ số 10
Kết quả string = "12345";
itoa(number, string, 2); //chuyển đổi number sang chuỗi theo cơ số 2
Kết quả string = "11000000111001";
16.1.4 tolower
int tolower(int ch);
Phải khai báo ctype.h
Đổi chữ hoa sang chữ thường.
Ví dụ: int len, i;
char *string = "THIS IS A STRING";
len = strlen(string);
for (i = 0; i < len; i++)
string[i] = tolower(string[i]); //đổi từ kí tự trong string thành chữ thường
16.1.5 toupper
int toupper(int ch);
Phải khai báo ctype.h
Đổi chữ thường sang chữ hoa.
Ví dụ: int len, i;
char *string = "this is a string";
len = strlen(string);
for (i = 0; i < len; i++)
string[i] = toupper(string[i]); //đổi từ kí tự trong string thành chữ thường
Giáo trình Lập trình C căn bản Trang 133
Hanoi Aptech Computer Education Center
16.2 Các hàm xử lý chuỗi ký tự
16.2.1 strcat
char *strcat(char *dest, const char *src);
Phải khai báo string.h
Thêm chuỗi src vào sau chuỗi dest.
16.2.2 strcpy
char *strcpy(char *dest, const char *src);
Phải khai báo string.h
Chép chuỗi src vào dest.
Ví d
ụ: char destination[25];
char *blank = " ", *c = "C++", *borland = "Borland";
strcpy(destination, borland); //chép chu
ỗi borland vào destination
strcat(destination, blank); //thêm chu
ỗi blank vào sau chuỗi destination
strcat(destination, c); //thêm chuỗi c vào sau chuỗi destination
16.2.3 strcmp
int *strcmp(const char *s1, const char *s2);
Phải khai báo string.h
So sánh chuỗi s1 với chuỗi s2. Kết quả trả về:
< 0 nếu s1 < s2
= 0 nếu s1 = s2
> 0 nếu s1 > s2
Ví dụ: char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "aaa";
strcmp(buf1, buf2); //k
ết quả trả về - 1
strcmp(buf1, buf3); //k
ết quả trả về 0
strcmp(buf2, buf3); //kết quả trả về 1
16.2.4 strcmpi
int *strcmp(const char *s1, const char *s2);
Phải khai báo string.h
So sánh chuỗi s1 với chuỗi s2 không phân biệt chữ hoa, chữ thường. Kết quả trả về:
< 0 nếu s1 < s2
= 0 nếu s1 = s2
> 0 nếu s1 > s2
Ví dụ: char *buf1 = "aaa", *buf2 = "AAA";
strcmp(buf1, buf2); //k
ết quả trả về 0
16.2.5 strlwr
char *strlwr(char *s);
Phải khai báo string.h
Chuyển chuỗi s sang chữ thường
Ví dụ: char *s = "Borland C";
s = strlwr(s); //k
ết quả s = "borland c"
16.2.6 strupr
char *strupr(char *s);
Phải khai báo string.h
Chuyển chuỗi s sang chữ hoa
Ví dụ: char *s = "Borland C";
s = strlwr(s); //k
ết quả s = "BORLAND C"
Giáo trình Lập trình C căn bản Trang 134
Hanoi Aptech Computer Education Center
16.2.7 strlen
int strlen(const char *s);
Phải khai báo string.h
Trả về độ dài chuỗi s.
Ví dụ: char *s = "Borland C";
int len_s;
len_s = strlen(s); //k
ết quả len_s = 9
16.3 Các hàm toán học
16.3.1 abs
int abs(int x);
Phải khai báo stblib.h
Cho giá trị tuyệt đối của số nguyên x.
Ví d
ụ: int num = - 123;
num = abs(num); //k
ết quả num = 123
16.3.2 labs
long int labs(long int x);
Phải khai báo stblib.h
Cho giá trị tuyệt đối của số nguyên dài x.
Ví d
ụ: int num = - 12345678L;
num = labs(num); //k
ết quả num = 12345678
16.3.3 rand
int rand(void);
Phải khai báo stblib.h
Cho 1 giá trị ngẫu nhiên từ 0 đến 32767
Ví dụ: int num;
randomize();
//dùng hàm này để khởi đầu bộ số ngẫu nhiên
num = rand(); //k
ết quả num = 1 con số trong khoảng 0..32767
16.3.4 random
int random(int num);
Phải khai báo stblib.h
Cho 1 giá trị ngẫu nhiên từ 0 đến 32767
Ví dụ: int n;
randomize();
n = random(100); //k
ết quả n = 1 con số trong khoảng 0..99
16.3.5 pow
double pow(double x, double y);
Phải khai báo math.h
Tính x mũ y
Ví dụ: double x = 2.0, y = 3.0, z;
z = pow(x, y); //k
ết quả z = 8.0
16.3.6 sqrt
double sqrt(double x);
Phải khai báo math.h
Tính căn bậc 2 của x.
Ví dụ: double x = 4.0, y;
y = sqrt(x); //k
ết quả y = 2.0
Giáo trình Lập trình C căn bản Trang 135
Hanoi Aptech Computer Education Center
16.4 Các hàm xử lý file
16.4.1 rewind
void rewind(FILE *stream);
Phải khai báo stdio.h
Đưa con trỏ về đầu file.
16.4.2 ftell
long ftell(FILE *stream);
Phải khai báo stdio.h
Trả về vị trí con trỏ file hiện tại.
16.4.3 fseek
int fseek(FILE *stream, long offset, int whence);
Phải khai báo stdio.h
Di chuyển con trỏ file đến vị trí mong muốn
long offset: chỉ ra số byte kể từ vị trí trước đó đến vị trí bắt đầu đọc
int whence: chỉ ra điểm xuất phát để tính offset gồm các giá trị sau: SEEK_SET
(đầu tập tin), SEEK_CUR (tại vị trí
con trỏ hiện hành), SEEK_END (cuối tập tin).