Bài giảng Ngôn ngữ lập trình - Nguyễn Thị Bích Ngân

Tóm tắt Bài giảng Ngôn ngữ lập trình - Nguyễn Thị Bích Ngân: ...x xxxf 35 123)( 2 5    x xxxxg 8. Tình diện tích hình tròn. 9. Nhập vào 2 số nguyên a,b. Tìm số lớn nhất trong 2 số. 10. Nhập vào 5 số nguyên. Tính trung bình cộng 5 số đó. Ngôn ngữ lập trình 30 CHƯƠNG 3. CÁC LỆNH ĐIỀU KHIỂN 3.1 Câu lệnh 3.1.1 Lệnh đơn Một câu lệnh đ...này được cố định trong bộ nhớ và được tham chiếu bằng tên diem. Như vậy, khi ta khai báo int num[5]; thì num là mảng 1 chiều có 5 phần tử số nguyên, mỗi số nguyên cần 2 byte. Do đó, bộ nhớ cần cho mảng num là: 5*2= 10 bytes, và những phần tử của mảng này được chứa trong vùng nhớ liên tục. ...4. Xây dựng hàm nhập mảng a gồm n phần tử số nguyên phân biệt thỏa:  Không chứa số nguyên tố lớn hơn 200.  Các số không nguyên tố có thứ tự giảm. 15. Viết hàm tìm phần tử lớn nhất trong mảng số nguyên n phần tử. 16. Viết hàm tìm phần tử nhỏ nhất trong mảng số nguyên n phần tử. Ngôn ngữ l...

pdf127 trang | Chia sẻ: havih72 | Lượt xem: 213 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Ngôn ngữ lập trình - Nguyễn Thị Bích Ngân, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ể đọc 
Ngôn ngữ lập trình 
109 
fBIN = fopen(“D:\\Z\\TEST.BIN”,”r+b”); // Mở để 
đọc/ghi 
fBIN = fopen(“D:\\Z\\TEST.BIN”,”ab”); // Mở để ghi 
thêm (append) vào cuối 
//Xử lý lỗi 
if(fTXT == NULL) 
{ printf(“Loi mo file = %d. Noi dung = 
%s”,errno,strerror(errno)); 
 return 0; 
} 
Lưu ý : Thao tác đọc /ghi không thể thực hiện liền nhau, cần phải có một thao 
tác fseek hay rewind ở giữa. Ta xét ví dụ sau: 
FILE*fBIN; 
fBIN = fopen(“D:\\z\\TEST.BIN”.”r+b”);// Mở để update 
int x; 
while(fread(&x,sizeof(x),1,fBIN)) 
if(x == 0) 
{ x++; 
 fseek(fBIN,-sizeof(x),SEEK_CUR); 
 fwrite(&x, sizeof(x),1, fBIN); 
} 
fclose(fBIN); 
Kết quả: Chỉ update được 1 phần tử 
Ví dụ về truy xuất dữ liệu ở chế độ text 
n = fscanf(fTXT,”%d,%f,%s”,&Item,&fItem,szItem); // trả 
về số phần tử đọc được 
if(n < 3 || n ==EOF) 
{ 
 printf(“Không đọc được số phần tử cần thiết. M lỗi 
= %d”,errno); 
  // Các xử lý đặc biệt 
} 
 n = fprintf(fTXT,“%d,%f,%s”,&Item,&fItem,szItem);//trả 
về số byte ghi được; if(n < 
sizeof(Item)+sizeof(fItem)+strlen(szItem) || ) 
{ 
 printf(“Ghi không thành công. M lỗi = %d”,errno); 
Ngôn ngữ lập trình 
  // Các xử lý đặc biệt 
} 
Ví dụ về truy xuất dữ liệu ở chế độ binary 
n = fread(&Item, sizeof(Item), nItemRead, fBIN);//trả về 
số phần tử đọc được 
if(n < nItemRead) 
{ 
printf(“Không đọc được số phần tử cần thiết. M lỗi = 
%d”,errno); 
 // Các xử lý đặc biệt 
} 
n = fwrite(&Item, sizeof(Item), nItemWrite, fBIN);//trả 
về số byte đọc được 
if(n < nItemWrite) 
{ 
printf(“Ghi không thành công. M lỗi = %d”,errno); 
  // Các xử lý đặc biệt 
} 
Ví dụ sau sẽ thực hiện việc cập nhật SAI một phần tử khi quản lý bằng con trỏ 
fread(&Item,sizeof(Item),1,f); 
Item ++; // cập nhật phần tử Item 
fwrite(&Item,sizeof(Item),1,f); 
Ví dụ về đóng file sau khi xử lý 
Đóng từng file: 
Ngôn ngữ lập trình 
111 
fclose(fTXT); 
fclose(fBIN); 
Đóng tất cả các file đang mở: 
fcloseall(); 
Ví dụ sau sẽ cho thấy việc không bảo toàn dữ liệu khi không đóng file 
char szFileName[] = “D:\\z\\TEST.BIN”; 
Ghi dữ liệu lên file 
FILE*f = fopen(szFileName,”wb”); 
for( i = 0; i < n; i++) fwrite(&i,sizeof(i),1,f); 
Đọc dữ liệu từ file 
i = 0; 
f = fopen(szFileName,”rb”); 
while(fread(&i,sizeof(i),1,f)) i++; 
printf(“%d”,i); 
fclose(f); 
Kết quả: (tùy thuộc vào hệ thống) 
n = 100  i = 0 
n = 500  i = 256 
n = 513  i = 512 
n = 1000  i = 768 
Ngôn ngữ lập trình 
112 
Bài tập chương 7 
1. Cho một tập tin chứa chi tiết của nhân viên như Mã NV, tên, tuổi, lương cơ 
bản và trợ cấp. Thực hiện các yêu cầu sau: 
 Viết các câu lệnh để tạo tập tin Employee.dat và nhận các giá trị Mã NV, tên, 
tuổi, lương cơ bản và trợ cấp vào các field. 
 Gán chi tiết vào các biến sau đó lần lượt gán vào các field. 
 Sau khi tạo tập tin Employee, Hãy liệt k tất cả các mẩu tin của tập tin này. 
 Liệt kê các nhân viên có lương bằng 1000. 
 Cập nhật lại tiền trợ cấp cho tất cả các nhân viên thành 300 nếu lương cơ bản 
nhỏ hơn 2000 ngược lại lên 500. 
 Xóa các mẩu tin trong tập tin Employee căn cứ vào mã nhân viên nhập vào. 
 Tìm các nhân viên trong tập tin Employee theo mã nhân viên, hiển thị thông tin 
đầy đủ của nhân viên khi tìm thấy. Liệt kê các bộ sưu liệu được sử dụng của 
chương trình. 
2. Viết chương trình tìm độ dài của file (nhớ mở file dạng nhị phân). 
3. Viết chương trình đọc một file text và xóa các dòng trống nếu có trong file. 
4. Viết chương trình cắt bỏ các dòng thừa, cắt bỏ các khoảng trống thừa, đổi 
các kí tự đầu mỗi từ ra chữ hoa của một file text. 
5. Lập chương trình tạo một tập tin chứa các giá trị ngẫu nhiên. Sắp xếp chúng 
và lưu trữ sang một tập tin khác. 
6. Viết chương trình tính số lần xuất hiện của một kí tự chữ cái trong một tập 
tin văn bản. 
7. Viết chương trình tính số từ có trong một tập tin văn bản. 
8. Viết chương trình nối hai tập tin văn bản với nhau thành một tập tin văn bản. 
Ngôn ngữ lập trình 
113 
9. Viết chương trình nhập dữ liệu của các nhân viên của một cơ quan và lưu 
vào file. Sau đó thực hiện các câu lệnh sau: Nhập vào một số thứ tự, sửa dữ liệu của 
nhân viên theo thứ tự này, lưu lại nhân viên này vào file. Viết các hàm thực hiện các 
câu lệnh sau: 
 Tìm lương thấp nhất của cơ quan. 
 Tìm lương trung bình của cơ quan. 
 In ra danh sách nhân viên. 
 In ra những người có lương cao nhất. 
 In ra những người có lương thấp nhất. 
10. Viết chương trình quản lý lớp học bằng array. Mỗi học sinh được mô tả 
bằng: mã số (int), họ(8 kí tự), tên lĩt(24 kí tự), tên( 8 kí tự), điểm toán, lý, hóa. Lưu 
học sinh này vào file HOCSINH.DAT. Chương trình có các chức năng sau: 
 Thêm vào một học sinh. 
 Xóa một học sinh. 
 Xuất danh sách các học sinh (không có điểm). 
 Xuất danh sách học sinh có xếp hạng, nếu cùng hạng thì sắp theo tên. 
11. Viết chương trình tìm độ dài của file (nhớ mở file dạng nhị phân). 
12. Viết chương trình đọc một file text và xóa các dòng trống nếu có trong file. 
13. Viết chương trình cắt bỏ các dòng thừa, cắt bỏ các khoảng trống thừa, đổi 
các kí tự đầu mỗi từ ra chữ hoa của một file text. 
14. Lập chương trình tạo một tập tin chứa các giá trị ngẫu nhiên. Sắp xếp chúng 
và lưu trữ sang một tập tin khác. 
15. Viết chương trình tính số lần xuất hiện của một kí tự chữ cái trong một tập 
tin văn bản. 
16. Viết chương trình tính số từ có trong một tập tin văn bản. 
Ngôn ngữ lập trình 
114 
17. Viết chương trình nối hai tập tin văn bản với nhau thành một tập tin văn bản. 
18. Viết chương trình nhập dữ liệu của các nhân viên của một cơ quan và lưu 
vào file. Sau đó thực hiện các câu lệnh sau: Nhập vào một số thứ tự, sửa dữ liệu của 
nhân viên theo thứ tự này, lưu lại nhân viên này vào file. Viết các hàm thực hiện các 
câu lệnh sau: 
 Tìm lương thấp nhất của cơ quan. 
 Tìm lương trung bình của cơ quan. 
 In ra danh sách nhn viên. 
 In ra những người có lương cao nhất. 
 In ra những người có lương thấp nhất. 
19. Viết chương trình quản lý lớp học bằng array. Mỗi học sinh được mô tả 
bằng: mã số (int), họ (8 kí tự), tên lót (24 kí tự), tên (8 kí tự), điểm toán, lý, hóa. 
Lưu học sinh này vào file HOCSINH.DAT. Chương trình có các chức năng sau : 
 Thêm vào một học sinh 
 Xóa một học sinh 
 Xuất danh sách các học sinh (không có điểm) 
 Xuất danh sách học sinh có xếp hạng, nếu cùng hạng thì sắp theo tên. 
Ngôn ngữ lập trình 
115 
MỘT SỐ HÀM CHUẨN TRONG C 
1. File ctype.h : Xử lý kí tự 
Các hàm sau sẽ thực hiện việc kiểm tra, trả về là 0 nếu sai, trả về giá trị khác 0 
nếu đúng. 
int isalpha(int c) : Kiểm tra c có phải là kí tự chữ hay không ? (A  Z, a  z) 
int isascii(int c) : Kiểm tra c có phải là kí tự ASCII hay không ?(0  127) 
int iscntrl(int c) : Kiểm tra c có phải là kí tự điều khiển hay không? 
int isdigit(int c) : Kiểm tra c có phải là kí tự số 0  9 
int isgraph(int c) : Kiểm tra c có phải là kí tự in được, trừ khoảng trống. 
int islower(int c) : Kiểm tra c có phải là kí tự thường hay không ? 
int isprintf(int c) : Kiểm tra c có phải là kí tự in được 
int ispunct(int c) : Kiểm tra c có phải là kí tự điều khiển hay khoảng trống 
int isspace(int c) : Kiểm tra c có phải là kí tự khoảng trống? 
int isuppper(int c) : Kiểm tra c có phải là kí tự hoa ? (A  Z) 
+ Các hàm toán học 
double acos(double x) : Tính arc cosince(x) 
double asin(double x) : Tính arc sine(x) 
double atan(double x) : Tính arc tangent(x) 
double atan2(double x, double y) : Tính arc tangent(x/y) 
double ceil(double x) : Trả về số nguyên(có kiểu 
double) nhỏ nhất và không nhỏ hơn x 
double cos(double x) : Tính cosine(x), x : radian 
Ngôn ngữ lập trình 
116 
double cosh(double x) : Tính Hãyoerbolic cosine(x) 
double exp(double x) : Tính ex 
double fabs(double x) : Tính | x | 
double floor(double x) : Trả về số nguyên lớn nhất và không 
lớn hơn x 
double fmod(double x, double y) : Trả về số dư(kiểu double) 
của phép chia nguyên x/y 
double frexp(double x, int*exponent) Chia x làm thành phần định 
trị(mantisa) và luỹ thừa(exponent) của 2 ( x = a*2exponent) trả về giá trị a 
double ldexp(double x, int exp): Ngược lại với frexp, trả về x*2exp 
double log(double x) : Trả về giá trị log Neper của x 
double log10(double x) : Trả về giá trị log 10 của x 
double modf(double x, double*intptr) Chia x thnh phần 
lẻ(fractional – kết quả của hàm) v phần nguyên 
double pow(double x, doubley): Tính xy 
double sin(double x) : Tính since(x), x:radian 
double sinh(double x) : Tính Hãyperbolic của x 
double sqrt(double x) : Tính căn bậc 2 của x 
double tan(double x) : Tính tangent của x 
double tanh(double x) : Tính Hãyperbolic tangent của x 
+ Các hàm xuất nhập chuẩn: 
a. Các hàm xuất nhập dữ liệu thông thường 
int getchar(void) : Nhập một kí tự từ bên phím (stdin) 
Ngôn ngữ lập trình 
117 
int putchar(int c) : Xuất kí tự ra màn hình (stdout) 
char* gets(char*s) : Nhập một chuỗi kí tự từ bên phím 
int puts(const char*s) : Xuất một chuỗi kí tự ra màn hình(có xuống dòng) 
int printf(const char * format, [argument, ]) Xuất dữ liệu có định dạng ra 
màn hình 
int scanf(const char * format, [address, ]) Nhập dữ liệu có định dạng ra 
màn hình 
int sprintf(char*buffer,const char*format[argument,  ]); Xuất dữ liệu có 
định dạng sang 1 chuỗi 
int sscanf(const char*buffer, const char*format[argument,  ]) Đọc một 
chuỗi 
int vprintf(const char * format, va_list arlist);Xuất dữ liệu định dạng dùng 
danh sách đối số 
int vscanf(const char * format, va_list arlist); Nhập dữ liệu định dạng dùng 
danh sách đối số 
int vsprintf(char * buffer,const char*format, va_list arlist);Xuất dữ liệu định 
dạng ra chuỗi dùng danh sách đối số 
int vsscanf(const char * buffer,const char*format, va_list arlist);Nhập dữ 
liệu định dạng vào chuỗi dùng danh sách đối số 
b. Xuất nhập file 
void clearerr(FILE*stream) : Xóa thông báolỗi 
int fclose(FILE*stream) : Đóng file 
int fcloseall(void) : Đóng tất cả các file đang mở 
FILE*fdopen(int handle, char*type) : Gán 1 dòng(stream) cho file handle 
Ngôn ngữ lập trình 
118 
FILE*fopen(const char*filename, char*type): Mở một file 
FILE*freopen(const char*filename,const char * mode,FILE*stream); Mở một 
file mới và gán cho 1 hfile handle đ mở. 
Mở một file với chế độ dùng chung 
_fsopen: 
 #include 
 #include 
 FILE*_fsopen(const char*filename, const char*mode,int shflg); 
int feof(FILE*stream) : Kiểm tra hết file(Macro) 
int ferror(FILE*stream) : Kiểm tra có lỗi hay không 
int fflush(FILE*stream) : Ghi buffer của dòng(stream) ln file 
int fgetc(FILE*stream) : Lấy kí tự từ file 
int fputc(int c, FILE*stream) : Ghi kí tự c ln file 
int fgetchar(void) : Lấy kí tự từ thiết bị nhập chuẩn(stdin) 
int fputchar(int c) : Xuất lí tự ra thiết bị xuất chuẩn(stdout) 
int getpos(FILE*stream, fpos_t*pos): Lấy vị trí hiện hnh 
int fsetpos(FILE*stream, const fpos_t*pos) Ấn định vị trí file hiện hành 
char* fgets(char*s, int n, FILE*stream) : Lấy một chuỗi từ file 
int fputs(const char*s, FILE*stream): Ghi một chuỗi ln file 
int fileno(FILE*stream) : Lấy file handle 
int fflushall(void) : Xố các buffer của dòng nhập 
Ngôn ngữ lập trình 
119 
 Ghi các buffer của dòng xuất lên file 
int fprintf(FILE*stream, const char*format, [ , argument, ]) Ghi kết xuất 
có định dạng lên file 
int fscanf(FILE*stream, const char*format, [ , address, ]) Đọc dữ liệu có 
định dạng từ file 
size_t fread(void *ptr, size_t size, size n, FILE*stream); :Đọc dữ liệu từ file 
size_t fwrite(const void *ptr, size_t size, size n, FILE*stream); :Ghi dữ liệu lên 
file 
int fseek(FILE*stream, long offset, int whence): Nhẩy đến vị trí offset trong 
file kể từ vị trí whence 
long ftell(FILE*stream) : Lấy vị trí file hiện hình 
int getw(FILE*stream) : Đọc một số nguyên từ file 
int putw(int w, FILE*stream) : Xuất một số nguyên từ file 
void perror(const char*s) : Xuất một thông báo lỗi hệ 
thống 
int remove(const char*filename) : Macro xóa một file 
int rename(const char*oldname, const char*newname) Đổi tên một file 
void rewind(FILE*stream) : Đưa con trỏ về đầu file 
int rmtmp(void) : Xoá các file tạm đã mở 
Gán buffer cho một file: 
void setbuf(FILE*stream, char buf) 
int setvbuf(FILE*stream, char*buf, int type, size_t size) 
FILE*tmpfile(void) : Mở một file tạm nhị phân 
Ngôn ngữ lập trình 
120 
char* tempnam(char*dir, char *prefix) : Tạo một file có tên duy nhất 
trong thư mục 
int unget(int c, FILE*stream) : Trả kí tự về cho file 
int unlink(const char*filename) : Xóa một file 
Tạo thông báo: 
char*_strerror(const char*s); 
char*strerror(int errnum); 
+ Các hàm tiện ích 
a. Đổi số thành chuỗi 
Đổi số thực thành chuỗi, lấy ndig số hạng, dec số lẻ, đưa dấu vào biến sign 
char*ecvt(double value, int ndig, int *dec, int *sign); 
char*fcvt(double value, int ndig, int *dec, int *sign); 
char*itoa(int value, char*string, int radix); 
char*ltoa(long value, char*string, int radix); 
char*utoa(unsigned long value, char*string, int radix); 
char*gcvt(double value, int ndec, char*buf); 
b. Đổi chuổi thành số 
double atof(const char*s); 
long double _atold(const char*s); 
int atoi(const char*s); 
double strtod(const char *s, char**endptr); 
Ngôn ngữ lập trình 
121 
long strtol(const char *s, char**endptr, int radix); 
long double strtold(const char *s, char**endptr); 
unsigned long strtoul(const char *s, char**endptr, int radix); 
c. Xử lý số 
Lấy trị tuyệt đối số nguyên, số thực, số phức: 
int abs(int x); 
complex: double abs(complex x); 
double cabs(struct complex z); 
long double cabsl(struct _complex z); 
double fabs(double x); 
long double fabsl(long double @E(x)); 
long int labs(long int x); 
d. Tạo số ngẫu nhiên 
void randomize(void); : Khởi động cơ chế lấy số ngẫu nhiên 
int rand(void); : Lấy số ngẫu nhiên từ 0 đến RAND_MAX 
Lấy số ngẫu nhiên từ 0 đến num – 1 
Macro : random(num); 
Function: int random(int num); 
Lấy số ngẫu nhiên từ 0 đến seed 
void srand(unsigned seed); 
e. Cấp phát và thu hồi bộ nhớ: 
Ngôn ngữ lập trình 
122 
Hàm xin cấp phát một vùng nhớ có size bytes/ nbytes 
void * malloc(size_t size); 
void far*farmalloc(unsigned long nbytes); 
Hàm xin cấp phát một vùng nhớ cho nitems phần tử, mỗi phần tử có size bytes 
void * calloc(size_t nitems, size_t size); 
void far*farcalloc(unsigned long nitems, unsigned long size); 
Hàm xin cấp phát lại vùng nhớ lúc trước đã cấp phát rồi ở địa chỉ oldblock với kích 
thước mới là size, có copy nội dung cũ sang vùng nhớ mới. 
void * realloc(void * oldblock, size_t size); 
void far* farrealloc(void far* oldblock, unsigned long nbytes); 
Hàm trả về bộ nhớ cho hệ thống 
void * free(void*block); 
void far* farfree(void far*block); 
+ Xử lý string 
Copy một khối bộ nhớ n bytes từ src sang dest 
void *memcácpy(void *dest, const void *src, int c, size_t n); 
void *memcpy (void *dest, const void *src, size_t n); 
void *memmove(void *dest, const void *src, size_t n); 
void far * far _fmemcácpy(void far *dest, const void far *src, 
 int c, size_t n); 
void far * far _fmemcpy (void far *dest, const void far *src, 
Ngôn ngữ lập trình 
123 
 size_t n); ▒ 
Tìm kiếm kí tự c trong khối bộ nhớ s(n byte) 
void *memchr (const void *s, int c, size_t n); 
void far * far _fmemchr(const void far *s, int c, size_t n); 
So sánh n byte đầu tiên giữa hai chuỗi s1 và s2, hàm memicmp so sánh nhưng 
không phân biệt chữ hoa và chữ thường 
int memcmp (const void *s1, const void *s2, size_t n); 
int memicmp(const void *s1, const void *s2, size_t n); 
int far _fmemcmp (const void far *s1, const void far *s2, size_t n); 
int far _fmemicmp(const void far *s1, const void far *s2, size_t n); 
Cho n byte đầu tiên của s đều là kí tự c 
void *memset (void *s, int c, size_t n); 
void far * far _fmemset(void far *s, int c, size_t n); 
Nối chuỗi src vo chuỗi dest 
char *strúcat(char *dest, const char *src); 
char far * far _fstrúcat(char far *dest, const char far *src); 
Tìm địa chỉ vị trí xuất hiện đầu tiên của kí tự c trong chuỗi s 
char *strúchr(const char *s, int c); 
char far * far _fstrúchr(const char far *s, int c); 
So sánh hai chuỗi, strúcmpi, _fstricmp, stricmp không phân biệt chữ hoa và chữ 
thường 
int strúcmp(const char *s1, const char*s2); 
Ngôn ngữ lập trình 
124 
int strúcmpi(const char *s1, const char *s2) 
int stricmp(const char *s1, const char *s2); 
int far _fstrúcmp(const char far *s1, const char far *s2); 
int far _fstricmp(const char far *s1, const char far *s2); 
Copy chuỗi src sang chuỗi dest 
char *strúcpy(char *dest, const char *src); 
char far * _fstrúcpy(char far *dest, const char far *src); 
Tìm đoạn trong chuỗi s1 không chứa các kí tự có trong s2 
size_t strúcspn(const char *s1, const char *s2); 
size_t far _fstrúcspn(const char *s1, const char far *s2); 
Tìm đoạn trong chuỗi s1 có chứa các kí tự có trong s2 
size_t strspn(const char *s1, const char *s2); 
size_t far _fstrspn(const char far *s1, const char far *s2); 
Copy một chuỗi sang vị trí khc 
char *strdup(const char *s); 
char far * far _fstrdup(const char far *s); 
Tìm độ dài của chuỗi 
size_t strlen(const char *s); 
size_t far _fstrlen(const char far *s); 
Đổi một chuỗi thành chuỗi chữ thường 
char *strlwr(char *s); 
Ngôn ngữ lập trình 
125 
char far * far _fstrlwr(char far *s); 
Đổi một chuỗi thành chuỗi chữ hoa 
char *strupr(char *s); 
char far * far _fstrupr(char far *s); 
Nối một đoạn của chuỗi src vào chuỗi dest 
char *strêncat(char *dest, const char *src, size_t maxlen); 
char far * far _fstrêncat(char far *dest, const char far *src, 
 size_t maxlen); 
So snh hai chuỗi 
int strúcmp(const char *s1, const char*s2); 
int far _fstrúcmp(const char far *s1, const char far *s2); 
So sánh hai chuỗi, không phân biệt chuỗi hoa và chuỗi thường 
int strúcmpi(const char *s1, const char *s2) 
int stricmp(const char *s1, const char *s2); 
int far _fstricmp(const char far *s1, const char far *s2); 
Copy tối đa maxlen kí tự từ chuỗi src sang chuỗi dest 
char *strêncpy(char *dest, const char *src, size_t maxlen); 
char far * far _fstrêncpy(char far *dest, const char far *src size_t maxlen); 
Cho n byte của chuỗi s l kí tự ch 
char *strênset(char *s, int ch, size_t n); 
char far * far _fstrênset(char far *s, int ch, size_t n); 
Ngôn ngữ lập trình 
126 
Tìm xuất hiện đầu tiên của kí tự bất kỳ của chuỗi s2 trong chuỗi s1 
char *strpbrk(const char *s1, const char *s2); 
char far *far _fstrpbrk(const char far *s1, const char far *s2); 
Tìm xuất hiện cuối cùng của kí tự c trong chuỗi s 
char *strrchr(const char *s, int c); 
char far * far _fstrrchr(const char far *s, int c); 
Đảo chuỗi 
char *strrev(char *s); 
char far * far _fstrrev(char far *s); 
Thiết lập tất cả chuỗi s đều mang kí tự ch 
char *strset(char *s, int ch); 
char far * far _fstrset(char far *s, int ch); 
Tìm xuất hiện đầu tiên của chuỗi s2 trong s1 
char *strstr(const char *s1, const char *s2); 
char far * far _fstrstr(const char far *s1, const char far *s2); 
Tìm từ đầu tiên trong s1 không có mặt trong s2 
char *strtok(char *s1, const char *s2); 
char far * far _fstrtok(char far *s1, const char far *s2); 
Ngôn ngữ lập trình 
127 
TÀI LIỆU THAM KHẢO 
[1] Ngôn ngữ lập trình, Khoa CNTT, trường ĐH CNTP TPHCM, 2003 
[2] Nguyễn Thanh Thủy (chủ biên), Nhập môn lập trình ngôn ngữ C, Nhà xuất 
bản Khoa học và Kỹ thuật, 2005. 
[3] Brian.W.Kernighan, Dennis M.RitChie, C Programming Language, 2nd 
Edition, Prentice Hall Software Series, 
[4].  : The C Book, Mike Banahan, 
Declan Brady and Mark Doran (the online version). 
[5] Nguyễn Đình Tê, Hoàng Đức Hải, Giáo trình Lý thuyết và bài tập ngôn ngữ 
C Tập 1, Nhà xuất bản Giáo dục, 1999. 
[6] Nguyễn Đình Tê, Hoàng Đức Hải, Giáo trình Lý thuyết và bài tập ngôn ngữ 
C Tập 2, Nhà xuất bản Giáo dục, 1999. 
[7] Nguyễn Thanh Thủy và Nguyễn Quang Huy, Bài tập lập trình ngôn ngữ C, 
Nhà xuất bản Khoa học và Kỹ thuật, 1999. 
[8] Đặng Thành Tín, Tin Học II, Nhà xuất bản Giáo dục. 

File đính kèm:

  • pdfbai_giang_ngon_ngu_lap_trinh_nguyen_thi_bich_ngan.pdf