Tài liệu được biên soạn rất chi tiết: khai báo hàm, tham số, cách sử dụng hàm và ví dụ minh họa. Bao gồm các thư viện: , , , , , , . Tài liệu rất có ích cho các bạn mới bắt đầu học lập trình C cũng như người đã đi làm. Tài liệu được tham khảo tại diễn đàn: http:vncoding.netforumshowthread.php?p=3202post3202
Thư viện hàm ngôn ngữ lập trình C vncoding.net Page 1 Title: Thư viện hàm ngôn ngữ lập trình C Author: Vu Hong Viet Date: 09/11/2014 Thư viện hàm ngôn ngữ lập trình C <Tài liệu tham khảo từ diễn đàn: http://vncoding.net/forum/index.php) Thư viện hàm ngôn ngữ lập trình C vncoding.net Page 2 <assert.h> void assert( int expression); Parameters: expression: biểu thức đầu vào (có thể là con trỏ) Remark: Hàm assert( ) được sử dụng để đánh giá biểu thức và phát hiện lỗi logic trong khâu coding bằng cách đánh giá biểu thức đầu vào. - Nếu biểu thức đầu vào có giá trị là false (0), hàm assert( ) sẽ in ra thông báo lỗi, sau đó gọi hàm abort( ) để kết thúc chương trình - Nếu biểu thức đầu vào có giá trị là true (1), hàm assert() sẽ không làm gì (chương trình vẫn thực hiện như bình thường) - Định dạng của thông báo lỗi phụ thuộc ứng dụng gọi hàm assert( ). Nếu là Console application thì thông báo lỗi sẽ được hiển thị lên màn hình console như khi chúng ta sử dụng lệnh printf( ). (Để xem thêm các bài tập C console application, bạn hãy truy cập link sau: http://vncoding.net/forum/forumdisplay.php?f=20 gồm hơn 1000 bài tập lập trình C hữu ích cho bạn ôn luyện). Nếu là ứng dụng Win32 (ứng dụng có giao diện window), thì hàm assert( ) sẽ gọi hàm MessageBox( ) hiển thị 1 cửa sổ message box với button “OK”. Nếu bạn click vào button “OK”, ứng dụng Win32 của bạn sẽ kết thúc ngay lập tức. (Để xem them các bài tập lập trình Win32, bạn hãy truy cập link sau: http://vncoding.net/forum/forumdisplay.php?f=2 , hy vọng sẽ giúp ích nhiều cho các bạn). Ví dụ: Trong đoạn code dưới đây, hàm analyze_string( ) gọi hàm assert( ) để kiểm tra các điều kiện của string đầu vào ( con trỏ NULL, string là rỗng, chiều dài string phải lớn hơn 2). Nếu 1 trong các điều kiện này trả về false, thì message lỗi tương ứng sẽ được chỉ ra. Thư viện hàm ngôn ngữ lập trình C vncoding.net Page 3 #include <stdio.h> #include <conio.h> #include <assert.h> #include <string.h> void analyze_string( char *string ); // Prototype int main( void ) { char test1[] = "abc", *test2 = NULL, test3[] = ""; printf ( "Analyzing string '%s'\n", test1 ); fflush( stdout ); analyze_string( test1 ); printf ( "Analyzing string '%s'\n", test2 ); fflush( stdout ); analyze_string( test2 ); printf ( "Analyzing string '%s'\n", test3 ); fflush( stdout ); analyze_string( test3 ); getch(); } // Tests a string to see if it is NULL, // empty, or longer than 0 characters. void analyze_string( char * string ) { assert( string != NULL ); // Cannot be NULL assert( *string != '\0' ); // Cannot be empty assert( strlen( string ) > 2 ); // Length must exceed 2 } Kết quả: Analyzing string 'abc' Analyzing string '(null)' Analyzing string '' Thư viện hàm ngôn ngữ lập trình C vncoding.net Page 4 <ctype.h> int isalnum(int c); Parameter: c : tham số đầu vào kiểu int Remark: Hàm isalnum( ) kiểm tra tham số c. Nếu c là kiểu alphanumberic ( nằm trong dải A – Z, a – z, 0 – 9), hàm isalnum( ) giá trị khác 0. Còn c không thuộc các dải trên thì hàm sẽ trả về giá trị 0. Ví dụ:kiểm tra số nguyên c1 và c2 có phải là alphanumberic không? #include <stdio.h> #include <conio.h> #include <ctype.h> void main() { int c1 = 45, c2 = 97; if(isalnum(c1)) printf("\nc1 is alphanumberic"); else printf("\nc1 is NOT alphanumberic"); if(isalnum(c2)) printf("\nc2 is alphanumberic"); else printf("\nc2 is NOT alphanumberic"); getch(); } Kết quả: c1 is NOT alphanumberic c2 is alphanumberic Thư viện hàm ngôn ngữ lập trình C vncoding.net Page 5 int isalpha(int c); Parameter: c : tham số đầu vào kiểu int Remark: Hàm isalpha( ) sẽ kiểm tra tham số c. Nếu c là chữ cái (nằm trong dải A – Z, a – z), thì hàm sẽ trả về giá trị khác 0. Còn nếu c là không phải là chữ cái, hàm sẽ trả về giá trị 0. Ví dụ: kiểm tra c1 = 48 (số 0 trong bảng mã ASCII), c2 = 97 (kí tự ‘a’). #include <stdio.h> #include <conio.h> #include <ctype.h> void main() { int c1 = 48; // digit 0 int c2 = 97; // character 'a' if(isalpha(c1)) printf("\nc1 is alphabet"); else printf("\nc1 is NOT alphabet"); if(isalpha(c2)) printf("\nc2 is alphabet"); else printf("\nc2 is NOT alphabet"); getch(); } Kết quả: c1 is NOT alphabet c2 is alphabet Thư viện hàm ngôn ngữ lập trình C vncoding.net Page 6 int iscntrl(int c); Parameter: c : tham số đầu vào kiểu int Remark: Hàm iscntrl( ) kiểm tra tham số c. Nếu c là kí tự điều khiển (nằm từ 0x00 – 0x1F, 0x7F), hàm sẽ trả về giá trị khác 0. Và nếu c không phải là kí tự điều khiển, hàm sẽ trả về giá trị 0. Ví dụ: kiểm tra c1 = 10 và c2 = 19 có phải là kí tự điều khiển không? #include <stdio.h> #include <conio.h> #include <ctype.h> void main() { int c1 = 10, c2 = 19; if(iscntrl(c1)) printf("\nc1 is control character"); else printf("\nc1 is NOT control character"); if(iscntrl(c2)) printf("\nc2 is control character"); else printf("\nc2 is NOT control character"); getch(); } Kết quả: c1 is control character c2 is control character Thư viện hàm ngôn ngữ lập trình C vncoding.net Page 7 int isdigit(int c); Parameter: c : tham số đầu vào kiểu int Remark: Hàm isdigit( ) kiểm tra tham số c. Nếu c là số thập phân(0 – 9), hàm sẽ trả về giá trị khác 0. Và nếu c không phải là số thập phân, hàm sẽ trả về giá trị 0. Ví dụ: kiểm tra c1 = 50 và c2 = 54 có phải là số thập phân không? #include <stdio.h> #include <conio.h> #include <ctype.h> void main() { int c1 = 50, c2 = 54; if(isdigit(c1)) printf("\nc1 is decimal digit"); else printf("\nc1 is NOT decimal digit"); if(isdigit(c2)) printf("\nc2 is decimal digit"); else printf("\nc2 is NOT decimal digit"); getch(); } Kết quả: c1 is decimal digit c2 is decimal digit Thư viện hàm ngôn ngữ lập trình C vncoding.net Page 8 int isgraph(int c); Parameter: c : tham số đầu vào kiểu int Remark: Hàm isgraph( ) kiểm tra tham số c. Nếu c là kí tự có thể in được(từ 0x21 – 0x7E), hàm sẽ trả về giá trị khác 0. Và nếu c không phải là kí tự in được, hàm sẽ trả về giá trị 0. Ví dụ: kiểm tra c1 = 40 (kí tự @) và c2 = 7 (tiếng chuông) có phải là kí tự in được không? #include <stdio.h> #include <conio.h> #include <ctype.h> void main() { int c1 = 40; // character '@' int c2 = 7; // bell sound if(isgraph(c1)) printf("\nc1 is printable character"); else printf("\nc1 is NOT printable character"); if(isgraph(c2)) printf("\nc2 is printable character"); else printf("\nc2 is NOT printable character"); getch(); } Kết quả: c1 is printable character c2 is NOT printable character Thư viện hàm ngôn ngữ lập trình C vncoding.net Page 9 int islower(int c); Parameter: c : tham số đầu vào kiểu int Remark: Hàm islower( ) kiểm tra tham số c. Nếu c là kí tự in thường(a – z), hàm sẽ trả về giá trị khác 0. Và nếu c không phải là kí tự in thường, hàm sẽ trả về giá trị 0. Ví dụ: kiểm tra c1 = 97 và c2 = 65 có phải là kí tự in thường không? #include <stdio.h> #include <conio.h> #include <ctype.h> void main() { int c1 = 97; // character 'a' int c2 = 65; // character 'A' if(islower(c1)) printf("\nc1 is lowercase character"); else printf("\nc1 is NOT lowercase character"); if(islower(c2)) printf("\nc2 is lowercase character"); else printf("\nc2 is NOT lowercase character"); getch(); } Kết quả: c1 is lowercase character c2 is NOT lowercase character Thư viện hàm ngôn ngữ lập trình C vncoding.net Page 10 int isupper(int c); Parameter: c : tham số đầu vào kiểu int Remark: Hàm isupper( ) kiểm tra tham số c. Nếu c là kí tự in hoa(A – Z), hàm sẽ trả về giá trị khác 0. Và nếu c không phải là kí tự in hoa, hàm sẽ trả về giá trị 0. Ví dụ: kiểm tra c1 = 97 và c2 = 65 có phải là kí tự in hoa không? #include <stdio.h> #include <conio.h> #include <ctype.h> void main() { int c1 = 97; // character 'a' int c2 = 65; // character 'A' if(isupper(c1)) printf("\nc1 is uppercase character"); else printf("\nc1 is NOT uppercase character"); if(isupper(c2)) printf("\nc2 is uppercase character"); else printf("\nc2 is NOT uppercase character"); getch(); } Kết quả: c1 is NOT uppercase character c2 is uppercase character [...]... int c1 = 32; // character space int c2 = 69; // character 'E' if(ispunct (c1 )) printf("\nc1 is punctuation character"); else printf("\nc1 is NOT punctuation character"); if(ispunct (c2 )) printf("\nc2 is punctuation character"); else printf("\nc2 is NOT punctuation character"); getch(); } Kết quả: c1 is NOT punctuation character c2 is NOT punctuation character vncoding.net Page 12 Thư viện hàm ngôn ngữ lập. .. #include #include void main() { int c1 = 32; // character space int c2 = 9; // horizontal tab if(isspace (c1 )) printf("\nc1 is space character"); else printf("\nc1 is NOT space character"); if(isspace (c2 )) printf("\nc2 is space character"); else printf("\nc2 is NOT space character"); getch(); } Kết quả: c1 is space character c2 is space character vncoding.net Page 13 Thư viện hàm ngôn. .. int c1 = 32; // character space int c2 = 69; // character 'E' if(isprint (c1 )) printf("\nc1 is printing character"); else printf("\nc1 is NOT printing character"); if(isprint (c2 )) printf("\nc2 is printing character"); else printf("\nc2 is NOT printing character"); getch(); } Kết quả: c1 is printing character c2 is printing character vncoding.net Page 11 Thư viện hàm ngôn ngữ lập trình C int ispunct(int... { int c = 68; // character 'D' if(isupper (c) ) { printf("\n %c is uppercase character", c) ; printf("\n %c is converted into lowercase: %c" ,c, tolower (c) ); } else { printf("\n %c is not uppercase character", c) ; } getch(); } Kết quả: D is uppercase character D is converted into lowercase: d vncoding.net Page 15 Thư viện hàm ngôn ngữ lập trình C int toupper( int c ); Parameter: c : kí tự đầu vào để convert... is lowercase character", c) ; printf("\n %c is converted into uppercase: %c" ,c, toupper (c) ); } else { printf("\n %c is not lowercase character", c) ; } getch(); } Kết quả: a is lowercase character a is converted into uppercase: A vncoding.net Page 16 Thư viện hàm ngôn ngữ lập trình C double exp(double x); Parameter: x: giá trị double Remark: Hàm exp( ) sẽ trả về giá trị e mũ x, nếu thành c ng -... 68; // character 'D' int c2 = 71; // character 'G' if(isxdigit (c1 )) printf("\nc1 is hexadecimal digit "); else printf("\nc1 is NOT hexadecimal digit"); if(isxdigit (c2 )) printf("\nc2 is hexadecimal digit "); else printf("\nc2 is NOT hexadecimal digit "); getch(); } Kết quả: c1 is hexadecimal digit c2 is NOT hexadecimal digit vncoding.net Page 14 Thư viện hàm ngôn ngữ lập trình C int tolower(int c) ; Parameter:... vncoding.net My name's: VuHongViet I'm 25 age vncoding.net Page 33 Thư viện hàm ngôn ngữ lập trình C int putchar(int c) ; Paramter: c : mã ASCII c a kí tự muốn ghi ra màn hình Remark: Hàm trả về kí tự đư c ghi thành c ng Nếu gặp lỗi hàm sẽ trả về mã EOF Ví dụ: #include "conio.h" #include void main( void ) { putchar(65); putchar('a'); getch(); } Kết quả: Aa vncoding.net Page 34 Thư viện hàm ngôn. . .Thư viện hàm ngôn ngữ lập trình C int isprint(int c) ; Parameter: c : tham số đầu vào kiểu int Remark: Hàm isprint( ) kiểm tra tham số c Nếu c là kí tự in đư c (từ 0x20 – 0x7E), hàm sẽ trả về giá trị kh c 0 Và nếu c không phải là kí tự in đư c, hàm sẽ trả về giá trị 0 Ví dụ: kiểm tra c1 = 32 và c2 = 69 c phải là kí tự in đư c không? #include #include #include ... vncoding.net Page 34 Thư viện hàm ngôn ngữ lập trình C int puts(const char *str); Parameter: str: string muốn ghi ra Remark: Hàm puts( ) ghi ra màn hình string Ví dụ: #include "conio.h" #include void main( void ) { puts("vncoding forum"); getch(); } Kết quả: vncoding forum vncoding.net Page 35 Thư viện hàm ngôn ngữ lập trình C Hàm nhập dữ liệu int scanf(const char *format [,argument] ); Parameter:... ngôn ngữ lập trình C int isxdigit(int c) ; Parameter: c : tham số đầu vào kiểu int Remark: Hàm isxdigit ( ) kiểm tra tham số c Nếu c là chữ số hexa(A – F, a – f, 0 - 9), hàm sẽ trả về giá trị kh c 0 Và nếu c không phải là chữ số hexa, hàm sẽ trả về giá trị 0 Ví dụ: kiểm tra c1 = 68 và c2 = 71 c phải là chữ số hexa không? #include #include #include void main() { int c1 = . if(isspace (c2 )) printf(" c2 is space character"); else printf(" c2 is NOT space character"); getch(); } Kết quả: c1 is space character c2 is space character . if(iscntrl (c2 )) printf(" c2 is control character"); else printf(" c2 is NOT control character"); getch(); } Kết quả: c1 is control character c2 is control character. printf(" c2 is lowercase character"); else printf(" c2 is NOT lowercase character"); getch(); } Kết quả: c1 is lowercase character c2 is NOT lowercase character