You are on page 1of 18

ZORO Coparation

Đây là 1 số hàm được dịch trong thư viện


chuẩn của TC,các VD và từng câu đều là
nguyên mẫu trong TC
Hàm void abort( void ): Hàm abort được khai báo trong proccess.h
dùng để in ra thông báo “Abnormal program terminal”.
Ví dụ:

Code:

#include <stdio.h>
#include <stdlib.h>
int main(void) {
printf("Calling abort()\n");
abort();
return 0; /* This is never reached */
}

Hàm int abs(int n): trả lại giá trị tuyệt đối của n.
Hàm int access(char *path, int mode ) : Được khai báo trong io.h và dùng để xác
định xem file được chỉ ra theo char *path với mode truy nhập int mode có tồn tại
thực hay không. Trong đó, int mode có thể nhận một trong các giá trị:
00 : Chỉ kiểm tra sự tồn tại của file
02 : Kiểm tra việc cho phép ghi.
03 : Kiểm tra việc cho phép đọc
04 : Kiểm tra việc cho phép đọc và ghi
Đối với thư mục, hàm sẽ kiểm tra sự tồn tại của thư mục. Hàm trả lại giá trị 0 khi file
có quyền truy nhập với mode đã cho, hàm trả lại giá trị -1 khi quyền truy nhập file
theo mode gặp lỗi.
Ví dụ:

Code:

#include <stdio.h>
#include <io.h>
int file_exists(char *filename);
int main(void) {
printf("Does NOTEXIST.FIL exist: %s\n",
file_exists("NOTEXISTS.FIL") ? "YES" : "NO");
return 0;
}
int file_exists(char *filename)
{
return (access(filename, 0) == 0);
}

Hàm double acos(double x): Được khai báo trong math.h


dùng để tính arcosin(x).

1
ZORO Coparation

Hàm double asin( double x): /2].∏/2, ∏Được khai báo trong
math.h dùng để tính giá trị arsin(x) trong khoảng [-

Hàm char *asctime( struct tm *blktime): Hàm được


định nghĩa trong time.h dùng để biến đổi cấu trúc thời gian lưu trữ thành một xâu
gồm 26 kí tự có dạng như sau: Wed Jan 02 02:03:55 1980\n\0. Trong đó cấu trúc
thời gian tm được định nghĩa như sau:

Code:

struct tm {
int tm_sec; /* Số giây sau một phút (0 . .59) */
int tm_min; /* Số phút sau một giờ (0 . .59) */
int tm_hour; /* Số giờ sau một ngày đêm ( 0 . .23) */
int tm_mday; /* Ngày trong một tháng ( 0. .31)*/
int tm_mon; /* Số tháng kể từ tháng 1 ( 0 . .11)*/
int tm_year; /* Số năm sau 1900 */
int tm_wday; /* Số ngày sau thứ bảy (0. .6)*/
int tm_yday; /* Số ngày kể từ tháng 1 */
int tm_isdst; /* Cỡ thời gian- ngày- lưu trữ*/};Ví dụ:
Code:

#include <stdio.h>
#include <string.h>
#include <time.h>
int main(void) {
struct tm t;
char str[80];
/* sample loading of tm structure */
t.tm_sec = 1; /* Seconds */
t.tm_min = 30; /* Minutes */
t.tm_hour = 9; /* Hour */
t.tm_mday = 22; /* Day of the Month */
t.tm_mon = 11; /* Month */
t.tm_year = 56; /* Year - does not include century */
t.tm_wday = 4; /* Day of the week */
t.tm_yday = 0; /* Does not show in asctime */
t.tm_isdst = 0; /* Is Daylight SavTime; does not show in
asctime */
/* converts structure to null terminated string */
strcpy(str, asctime(&t));
printf("%s\n", str);
return 0;
}

Hàm int atoi(char *string): Được khai báo trong math.h dùng để chuyển đổi một xâu
kí tự số thành một số nguyên.

Hàm int atol(char *string): Được khai báo trong math.h dùng
để chuyển đổi một xâu kí tự số thành một số nguyên dài.

Hàm double atof( char *string): Được khai báo trong


math.h dùng để chuyển đổi một xâu kí tự số thành một số thực có độ chính xác gấp
đôi.

2
ZORO Coparation

Hàm char *itoa( int value, char *string, int


radix): Được khai báo trong stdlib.h dùng để chuyển đổi số value thành một xâu
kí tự số với cơ số là radix. Trong đó, 2 <= radix <=16.

Hàm char *utoa( unsigned long int value, char


string, int radix): Được khai báo trong stdlib.h dùng để chuyển đổi số
nguyên dài không dấu value thành một xâu kí tự số với cơ số là radix. Trong đó, 2
<= radix <=16.

Hàm char *ltoa( long int value, char string, int


radix): Được khai báo trong stdlib.h dùng để chuyển đổi số nguyên dài value
thành một xâu kí tự số với cơ số là radix. Trong đó, 2 <= radix <=16.
Ví dụ:

Code:

#include <stdlib.h>
#include <stdio.h>
int main(void){
char string[25];
long value = 123456789L;
ltoa(value,string,10);
printf("number = %ld string = %s\n", value, string);
return 0;
}
Đã được chỉnh sửa gần đây bởi coder_gate : Ngày 07-03-2009 lúc 08:45 PM. Lý do: Hướng Dẫn Sử
Dụng Các Hàm Thông Dụng Trên TC

#2
25-07-2008, 09:59 PM
Gia nhập ngày: 02 2008
Nơi ở: hà nội 2 - ptit việt nam
coder_gate Bài viết: 1,046
Hack Girl_Pro

Re: Giới thiệu các hàm chuển trên TC

Hàm int biosdisk(int cmd, int drive, int head,


int track, int sector,int nsects, void
*buffer); được khai báo trong bios.h, sử dụng int 0x13 để cung cấp một số
dịch vụ truy nhập đĩa. Trong đó, int cmd là số hiệu của dịch vụ; int drive là số hiệu ổ
đĩa; int head là số hiệu đầu đọc ghi; int track là số hiệu rãnh; int sector là số hiệu
sector bắt đầu; int sector là số hiệu sector cần đọc ghi hoặc so sánh; void far
*buffer là vị trí bộ nhớ cần để đọc ra, ghi vào hoặc để so sánh.
Ví dụ:

3
ZORO Coparation

Code:

#include <bios.h>
#include <stdio.h>
int main(void) {
int result;
char buffer[512];
printf("Testing to see if drive a: is ready\n");
result = biosdisk(4,0,0,0,0,1,buffer);
result &= 0x02;
(result) ? (printf("Drive A: Ready\n")) :
(printf("Drive A: Not Ready\n"));
return 0;
}

Hàm int bioscom(int cmd, char abyte, int


port); được khai báo trong bios.h dùng để điều khiển cổng truyền thông RS-232
(communications I/O). Trong đó giá trị của int cmd được xác định bởi một trong các
giá trị sau:
0 : Thiết lập byte dữ liệu truyền.
1 : Gửi một byte ra đường truyền.
2 : Nhận một byte với 8 bít giá trị từ cổng.
3 : Thiết lập trạng thái cổng.
int port là một số nguyên, trong đó port = 0 cho cổng COM1, port = 1 cho cổng
COM2.
Ví dụ:

Code:

#include <bios.h>
#include <conio.h>
#define COM1 0
#define DATA_READY 0x100
#define TRUE 1
#define FALSE 0
#define SETTINGS ( 0x80 | 0x02 | 0x00 | 0x00)
int main(void) {
int in, out, status, DONE = FALSE;
bioscom(0, SETTINGS, COM1);
cprintf("... BIOSCOM [ESC] to exit ...\n");
while (!DONE) {
status = bioscom(3, 0, COM1);
if (status & DATA_READY)
if ((out = bioscom(2, 0, COM1) & 0x7F) != 0)
putch(out);
if (kbhit()) {
if ((in = getch()) == '\x1B')
DONE = TRUE;
bioscom(1, in, COM1);
}

4
ZORO Coparation

}
return 0;
}

Hàm int inport(int portid) Được khai báo trong dos.h dùng để
đọc một từ 2byte từ cổng.

Hàm int inportb( char byte): Được khai báo trong dos.h dùng
để đọc một byte từ cổng.
Ví dụ:

Code:

#include <stdio.h>
#include <dos.h>
int main(void){
int result;
int port = 0; /* serial port 0 */
result = inport(port);
printf("Word read from port %d = 0x%X\n", port, result);
return 0;
}

Hàm int outport( int portid): Được khai báo trong dos.h dùng
để đưa một từ ra cổng.

Hàm int outportb(char byte): Được khai báo trong dos.h


dùng để đưa một byte dữ liệu ra cổng.
Ví dụ:

Code:

#include <stdio.h>
#include <dos.h>
int main(void){
int port = 0;
char value = 'C';
outportb(port, value);
printf("Value %c sent to port number %d\n", value, port);
return 0;
}

Hàm void calloc(size_t n, size_t size): Được khai báo


trong alloc.h dùng để cấp phát không gian nhớ cho một mảng gồm n phần tử trong
đó độ dài của mỗi phần tử là size byte.
Ví dụ:

Code:

#include <stdio.h>

5
ZORO Coparation

#include <alloc.h>
int main(void) {
char *str = NULL;
/* allocate memory for string */
str = calloc(10, sizeof(char));
/* copy "Hello" into string */
strcpy(str, "Hello");
/* display string */
printf("String is %s\n", str);
/* free memory */
free(str);
return 0;
}

Hàm void *malloc(size_t sie_n): Được khai báo trong


alloc.h dùng để cấp phát một khối bộ nhớ gồm size_n byte. Hàm trả lại con trỏ tới
vùng bộ nhớ đã được cấp phát nếu thực hiện thành công, hàm trả lại con trỏ NULL
nếu việc cấp phát bộ nhớ không thành công.
Ví dụ:

Code:

#include <stdio.h>
#include <string.h>
#include <alloc.h>
#include <process.h>
int main(void){
char *str;
/* allocate memory for string */
if ((str = malloc(10)) == NULL){
printf("Not enough memory to allocate buffer\n");
exit(1); /* terminate program if out of memory */
}
/* copy "Hello" into string */
strcpy(str, "Hello");
/* display string */
printf("String is %s\n", str);
/* free memory */
free(str);
return 0;
}

__________________
Chuyển Từ MFC sang QT và Wxwidgets
Hướng dẫn hook Kernel Mode
LTV
http://www.thietkewebsite.net/dnews.php?cnid=9&nid=5374

#3
25-07-2008, 10:03 PM

6
ZORO Coparation

Gia nhập ngày: 02 2008


Nơi ở: hà nội 2 - ptit việt nam
coder_gate Bài viết: 1,046
Hack Girl_Pro

Re: Giới thiệu các hàm chuển trên TC

Hàm void realloc(void *newblk, size_t


size) : Được khai báo trong alloc.h dùng để cấp phát lại vùng bộ nhớ đã được
cấp phát cho con trỏ bởi hàm malloc() hoặc calloc() trước đó. Hàm trả lại con trỏ là
địa chỉ của vùng bộ nhớ mới được cấp phát, trả lại con trỏ NULL nếu việc cấp phát lại
không thành công. Con trỏ tới vùng bộ nhớ mới có thể có địa chỉ khác với địa chỉ
vùng bộ nhớ trước đó đã được cấp phát cho con trỏ.
Ví dụ :

Code:

#include <stdio.h>
#include <alloc.h>
#include <string.h>
int main(void){
char *str;
/* allocate memory for string */
str = malloc(10);
/* copy "Hello" into string */
strcpy(str, "Hello");
printf("String is %s\n Address is %p\n", str, str);
str = realloc(str, 20);
printf("String is %s\n New address is %p\n", str, str);
/* free memory */
free(str);
return 0;
}

Hàm unsigned int FP_OFF(char far


*address): Được khai báo trong dos.h dùng để đặt (hay lấy) địa chỉ offset
của con trỏ address. Trong model bộ nhớ nhỏ (small) và vừa (medium), FP_OFF chỉ
làm việc chính xác khi address là con trỏ xa nằm trong segmen dữ liệu chuẩn. Hàm
FP_OFF cho lại địa chỉ offset của con trỏ address.
Ví dụ:

Code:

/* FP_OFF */
#include <dos.h>
#include <stdio.h>
int main(void){
char *str = "fpoff.c";
printf("The offset of this file in memory\ is: %Fp\n",
FP_OFF(str));

7
ZORO Coparation

return 0;
}

Hàm unsigned int FP_SEG(char far *address):


Được khai báo trong dos.h dùng để đặt (hay lấy) địa chỉ segmen của con trỏ
address. Trong model bộ nhớ nhỏ (small) và vừa (medium), FP_SEG chỉ làm việc
chính xác khi address là con trỏ xa nằm trong segmen dữ liệu chuẩn. Hàm FP_SEG
cho lại địa chỉ segmen của con trỏ address.
Ví dụ:

Code:

/* FP_SEG */

#include <dos.h>
#include <stdio.h>
int main(void) {
char *filename = "fpseg.c";
printf("The offset of this file in memory\ is: %Fp\n",
FP_SEG(filename));
return(0);
}

Hàm void far *MK_SEG(unsigned in seg,


unsigned int off): Được khai báo trong dos.h dùng để truy nhập tới
vùng bộ nhớ có địa chỉ segmen và địa chỉ offset được chỉ ra bởi seg, off.
Ví dụ:

Code:

/* MK_FP */
#include <dos.h>
#include <graphics.h>
int main(void) {
int gd, gm, i;
unsigned int far *screen;
detectgraph(&gd, &gm);
if (gd == HERCMONO)
screen = MK_FP(0xB000, 0);
else
screen = MK_FP(0xB800, 0);
for (i=0; i<26; i++)
screen[i] = 0x0700 + ('a' + i);
return 0;
}

Hàm void movedata(unsigned srcseg,


unsigned srcoff,

8
ZORO Coparation

unsigned destseg,
unsigned destoff,
size_t n);
Được khai báo trong mem.h dùng để copy n byte từ miền bộ nhớ có địa chỉ seg:off
tới miền bộ nhớ mới có địa chỉ destseg:destoff.

Code:

#include <mem.h>
#define MONO_BASE 0xB000
/* saves the contents of the monochrome screen in buffer */
void save_mono_screen(char near *buffer) {
movedata(MONO_BASE, 0, _DS, (unsigned)buffer, 80*25*2);
}
int main(void) {
char buf[80*25*2];
save_mono_screen(buf);
}

Hàm void movmem(void *src, void *dest,


unsigned length); đựoc khai báo trong mem.h dùng để dịch chuyển
một khối bộ nhớ có độ dài n byte từ con trỏ scr tới con trỏ dest.
Ví dụ:

Code:

#include <mem.h>
#include <alloc.h>
#include <stdio.h>
#include <string.h>
int main(void) {
char *source = "Borland International";
char *destination;
int length;
length = strlen(source);
destination = malloc(length + 1);
movmem(source,destination,length);
printf("%s\n",destination);
return 0;
}

__________________
Chuyển Từ MFC sang QT và Wxwidgets
Hướng dẫn hook Kernel Mode
LTV
http://www.thietkewebsite.net/dnews.php?cnid=9&nid=5374

#4
25-07-2008, 10:10 PM

9
ZORO Coparation

Gia nhập ngày: 02 2008


Nơi ở: hà nội 2 - ptit việt nam
coder_gate Bài viết: 1,046
Hack Girl_Pro

Re: Giới thiệu các hàm chuển trên TC


--------------------------------------------------------------------------------

Hàm void *memcpy(void *dest, const void


*src, size_t n); được khai báo trong mem.h dùng để Copy một block
gồm bytes từ con trỏ src tới con trỏ dest.

Code:

#include <stdio.h>
#include <string.h>
int main(void) {
char src[] = "******************************";
char dest[] = "abcdefghijlkmnopqrstuvwxyz0123456709";
char *ptr;
printf("destination before memcpy: %s\n", dest);
ptr = memcpy(dest, src, strlen(src));
if (ptr)
printf("destination after memcpy: %s\n", dest);
else
printf("memcpy failed\n");
return 0;
}

Hàm int gettext(int left, int top, int right, int


bottom, void *destin); được khai báo trong conio.h dùng để copy
các dòng văn bản ở mode text từ màn hình có toạ độ (left, top), (right, bottom) vào
vùng bộ nhớ trỏ bởi destin. Hàm trả lại con trỏ NULL nếu thực hiện không thành
công.

Hàm int puttext(int left, int top, int right, int


bottom, void *destin); được khai báo trong conio.h dùng để hiển
thị nội dung miền nhớ trong buffer lên màn hình xác định bởi hình chữ nhật có toạ
độ (left, top), (right, bottom). Hàm trả lại con trỏ NULL nếu thực hiện không thành
công.
Ví dụ:

Code:
Code:

#include <conio.h>
char buffer[4096];
int main(void) {

10
ZORO Coparation

int i; clrscr();
for (i = 0; i <= 20; i++)
cprintf("Line #%d\r\n", i);
gettext(1, 1, 80, 25, buffer); gotoxy(1, 25);
cprintf("Press any key to clear screen...");
getch(); clrscr();
gotoxy(1, 25); cprintf("Press any key to restore screen...");
getch(); puttext(1, 1, 80, 25, buffer);
gotoxy(1, 25); cprintf("Press any key to quit...");
getch(); return 0;
}

Hàm int chdir(char *path) : Được khai báo trong sys\type.h


dùng để thay đổi từ thư mục hiện thời sang một thư mục mới được chỉ ra theo path.
Ví dụ:

Code:
Code:

#include <stdio.h>
#include <stdlib.h>
#include <dir.h>
char old_dir[MAXDIR];
char new_dir[MAXDIR];
int main(void){
if (getcurdir(0, old_dir)){
perror("getcurdir()");
exit(1);
}
printf("Current directory is: \\%s\n", old_dir);
if (chdir("\\")){
perror("chdir()");
exit(1);
}
if (getcurdir(0, new_dir)){
perror("getcurdir()");
exit(1);
}
printf("Current directory is now: \\%s\n", new_dir);
printf("\nChanging back to orignal directory: \\%s\n", old_dir);
if (chdir(old_dir)){
perror("chdir()");
exit(1);
}
return 0;
}

Hàm int mkdir(char *path): Được khai báo trong dir.h dùng để
khởi tạo một thư mục mới được chỉ qua path. Hàm trả lại giá trị 0 nếu thư mục được
tạo ra và trả lại giá trị -1 nếu gặp lỗi.

Hàm int rmdir(char *path): Được khai báo trong dir.h dùng để
loại bỏ thư mục được chỉ ra trong path. Hàm trả lại giá trị 0 nếu thư mục bị loại bỏ,
trả lại giá trị -1 nếu gặp lỗi.

11
ZORO Coparation

Ví dụ:

Code:

#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <dir.h>
int main(void) {
int status;
clrscr();
status = mkdir("asdfjklm");
(!status) ? (printf("Directory created\n")) :
(printf("Unable to create directory\n"));
getch();
system("dir");
getch();
status = rmdir("asdfjklm");
(!status) ? (printf("Directory deleted\n")) :
(perror("Unable to delete directory"));
return 0;
}

Hàm int getcurdir(int drive, char


*directory): Được khai báo trong dir.h dùng để nhận đường dẫn tới thư
mục hiện tại được lưu trữ trong directory. Trong đó, drive = 0 để chỉ ổ đĩa hiện tại,
drive = 1 cho ổ A, drive = 2 cho ổ B . .Hàm trả lại giá trị 0 nếu thực hiện thành
công, trả lại giá trị -1 nếu gặp lỗi.
Ví dụ:

Code:
Code:

#include <dir.h>
#include <stdio.h>
#include <string.h>
char *current_directory(char *path) {
strcpy(path, "X:\\"); /* fill string with form of response:
X:\ */
path[0] = 'A' + getdisk(); /* replace X with current drive
letter */
getcurdir(0, path+3); /* fill rest of string with current
directory */
return(path);
}
int main(void) {
char curdir[MAXPATH];
current_directory(curdir);
printf("The current directory is %s\n", curdir);
return 0;
}

__________________

12
ZORO Coparation

Chuyển Từ MFC sang QT và Wxwidgets


Hướng dẫn hook Kernel Mode
LTV
http://www.thietkewebsite.net/dnews.php?cnid=9&nid=5374

#5
25-07-2008, 10:14 PM
Gia nhập ngày: 02 2008
Nơi ở: hà nội 2 - ptit việt nam
coder_gate Bài viết: 1,046
Hack Girl_Pro

Re: Giới thiệu các hàm chuển trên TC

Hàm int chmod( char *path, int mode): Được khai


báo trong io.h dùng để thay đổi quyền truy nhập file đang tồn tại. Trong đó, char
*path là đường dẫn tới file đang tồn tại, int mode là mode mới được đặt quyền truy
nhập file; int mode có thể nhận giá trị từ một trong các hằng sau : S_IWRITE (được
phép ghi), S_READ (được phép đọc). Hàm cho lại giá trị 0 nếu phép đặt quyền truy
nhập thành công, hàm cho lại giá trị -1 nếu gặp lỗi.
Ví dụ:

Code:
Code:

#include <sys\stat.h>
#include <stdio.h>
#include <io.h>
void make_read_only(char *filename);
int main(void)
{
make_read_only("NOTEXIST.FIL");
make_read_only("MYFILE.FIL");
return 0;
}
void make_read_only(char *filename)
{
int stat;
stat = chmod(filename, S_IREAD);
if (stat)
printf("Couldn't make %s read-only\n", filename);
else
printf("Made %s read-only\n", filename);
}

Hàm int unlink( const char *path): Được khai báo trong
io.h dùng để loại bỏ một file được chỉ ra trong path. Hàm sẽ thực hiện không thành
công nếu file không tồn tại hoặc file có thuộc tính readonly. Hàm trả lại giá trị 0 nếu
thực hiện thành công, trả lại giá trị -1 nếu gặp lỗi.
Hàm int remove(const char *path): Được khai báo trong io.h dùng để loại bỏ file
được chỉ ra trong path. Hàm trả lại giá trị 0 nếu thực hiện thành công, trả lại giá trị

13
ZORO Coparation

-1 nếu việc xoá không thành công.


Ví dụ :

Code:
Code:

#include <stdio.h>
#include <io.h>
int main(void){
FILE *fp = fopen("junk.jnk","w");
int status;
fprintf(fp,"junk");
status = access("junk.jnk",0);
if (status == 0)
printf("File exists\n");
else
printf("File doesn't exist\n");
fclose(fp);
unlink("junk.jnk");
status = access("junk.jnk",0);
if (status == 0)
printf("File exists\n");
else
printf("File doesn't exist\n");
return 0;
}

Hàm int rename( char *oldname, char


newname): Được khai báo trong io.h dùng để đổi tên file hay thư mục được
chỉ ra trong oldname thành tên file mới hoặc thư mục mới được chỉ ra trong
newname. Hàm cho lại giá trị 0 nếu thực hiện thành công, cho lại giá trị -1 nếu thực
hiện không thành công.
Ví dụ:

Code:
Code:

#include <io.h>
int main(void){
char oldname[80], newname[80];
/* prompt for file to rename and new name */
printf("File to rename: ");
gets(oldname);
printf("New name: ");
gets(newname);
/* Rename the file */
if (rename(oldname, newname) == 0)
printf("Renamed %s to %s.\n", oldname, newname);
else
perror("rename");
return 0;
}

Hàm void getdate(struct date *datep): Được khai báo

14
ZORO Coparation

trong dos.h dùng để nhận ngày tháng hiện tại của hệ thống vào cấu trúc date.
Ví dụ:

Code:
Code:

#include <dos.h>
#include <stdio.h>
int main(void) {
struct date d;
getdate(&d);
printf("The current year is: %d\n", d.da_year);
printf("The current day is: %d\n", d.da_day);
printf("The current month is: %d\n", d.da_mon);
return 0;
}

Hàm void setdate(struct date *datep): Được khai báo


trong dos.h dùng để thiết lập ngày tháng hiện tại của hệ thống.
Ví dụ:

Code:
Code:

#include <stdio.h>
#include <process.h>
#include <dos.h>
int main(void) {
struct date reset;
struct date save_date;
getdate(&save_date);
printf("Original date:\n");
system("date");
reset.da_year = 2001;
reset.da_day = 1;
reset.da_mon = 1;
setdate(&reset);
printf("Date after setting:\n");
system("date");
setdate(&save_date);
printf("Back to original date:\n");
system("date");
return 0;
}

Hàm void gettime(struct time *timep): Được khai


báo trong dos.h dùng để nhận thời gian hiện tại của hệ thống.
Ví dụ:

Code:
Code:

#include <stdio.h>
#include <dos.h>

15
ZORO Coparation

int main(void) {
struct time t;
gettime(&t);
printf("The current time is: %2d:%02d:%02d.%02d\n",
t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);
return 0;
}

Hàm void settime(struct time *timep): Được khai báo


trong dos.h dùng để thiết lập thời gian hiện tại của hệ thống.
Ví dụ:

Code:
Code:

#include <stdio.h>
#include <dos.h>
int main(void) {
struct time t;
gettime(&t);
printf("The current minute is: %d\n", t.ti_min);
printf("The current hour is: %d\n", t.ti_hour);
printf("The current hundredth of a second is: %d\n", t.ti_hund);
printf("The current second is: %d\n", t.ti_sec);
/* Add one to the minutes struct element and then call settime
*/
t.ti_min++;
settime(&t);
return 0;
}

Hàm char *gets(char *string): Được khai báo trong stdio.h


dùng để nhận một xâu kí tự từ bàn phím vào string. Khác với sacnf(), gets() chấp
nhận xâu kí tự chứa dấu trống.
Ví dụ:

Code:
Code:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
printf("Calling abort()\n");
abort();
return 0; /* This is never reached */
}
#include <stdio.h>
int main(void){
char string[80];
printf("Input a string:");
gets(string);

16
ZORO Coparation

printf("The string input was: %s\n",string);


return 0;
}

Hàm int putch(): Được khai báo trong conio.h dùng để đưa kí tự c ra
thiết bị ra chuẩn.

Hàm int puts(char *string): Được khai báo trong stdio.h dùng
để đưa một xâu kí tự ra thiết bị ra chuẩn.

Hàm int fputs(char *string, FILE *fp): Được khai báo


trong stdio.h dùng để ghi một xâu kí tự vào tệp được trỏ bởi con trỏ fp.

Hàm int fputc( char c, FILE *fp): Được khai báo trong
stdio.h dùng để ghi một kí tự vào tệp trỏ bởi con trỏ fp.

Hàm int strlen(char *string): Được khai báo trong string.h


dùng để tính độ dài xâu kí tự string.

Hàm char *strcpy(char *str1, char *str2): Được


khai báo trong string.h dùng để copy xâu str2 vào xâu str1.

Hàm int strcmp(char *str1, char *str2): Được khai


báo trong string.h dùng để so sánh hai xâu kí tự. Hàm trả lại giá trị lớn hơn 0 nếu
str1 lớn hơn str2, hàm trả lại giá trị âm nếu str1 nhỏ hơn str2, hàm trả lại giá trị 0
nếu str1=str2.

Hàm char *strcat(char *str1, char *str2): Được


khai báo trong string.h dùng để nối xâu kí tự str2 vào sau xâu sâu str1.

17
ZORO Coparation

Hàm int strstr( char *str1, char *str2): Được khai


báo trong string.h dùng để xác định xâu str2 có thuộc xâu str1 hay không. Hàm trả
lại vị trí của xâu str2 trong xâu str1.

Hàm char *strupr(char *string): Được khai báo trong


string.h dùng để biến đổi xâu kí tự string từ in thường thành in hoa.

Hàm char *strlwr(char *string): Được khai báo trong


string.h dùng để biến đổi xâu kí tự string từ in hoa sang in thường.

18

You might also like