1. Trang chủ
  2. » Công Nghệ Thông Tin

kỹ thuật lập trình C chuyên nghiệp phần 5 pdf

15 282 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 433,98 KB

Nội dung

DiDi h ểh ể t ỏt ỏ tt ảả Di Di c h uy ể nc h uy ể ncon con t r ỏt r ỏ t rong t rong m ả ngm ả ng itit ItAItA [5] {34210}[5] {34210} i n ti n t I n tA rr I n tA rr [5] = {3 , 4 , 2 , 1 , 0} ; [5] = {3 , 4 , 2 , 1 , 0} ; char char CharArrCharArr[5] = {‘[5] = {‘a’,’b’,’c’,’d’,’ea’,’b’,’c’,’d’,’e’};’}; itit ** ItPtItPt ItAItA i n ti n t ** I n tPt r I n tPt r= = I n tA rr I n tA rr;; char *char *charPtrcharPtr = = CharArrCharArr;;  Di Di chuyểnchuyển trongtrong mảngmảng 1 1 chiềuchiều:: intint val_at_0 = * val_at_0 = * IntPtrIntPtr;; // = // = IntArrIntArr[0][0] itit l t 3 * (I tPt +3) //l t 3 * (I tPt +3) // ItAItA [3][3] i n ti n t va l _a t _ 3 = * (I n tPt r +3) ; // = va l _a t _ 3 = * (I n tPt r +3) ; // = I n tA rr I n tA rr [3][3] IntPtrIntPtr IntPtr+1IntPtr+1 IntPtr+2IntPtr+2 Phé p toán với con trỏ tron g Phé p toán với con trỏ tron g p gp g mảngmảng #d fi ROWS 5#d fi ROWS 5 #d e fi ne ROWS 5#d e fi ne ROWS 5 #define COLS#define COLS 33 itit ItAItA [ROWS][COLS] {{34210}[ROWS][COLS] {{34210} i n ti n t I n tA rr I n tA rr [ROWS][COLS] = {{3 , 4 , 2 , 1 , 0} , [ROWS][COLS] = {{3 , 4 , 2 , 1 , 0} , {5,6,7,8,9},{5,6,7,8,9}, {10 11 12 13 14}};{10 11 12 13 14}}; {10 , 11 , 12 , 13 , 14}};{10 , 11 , 12 , 13 , 14}}; intint **IntPtrIntPtr = = IntArrIntArr;;  ThamTham chiếuchiếu đếnđếnphầnphầntửtử trongtrong mảngmảng 2 2 chiềuchiều:: intint val_at_00 = * val_at_00 = * IntPtrIntPtr;// = ;// = IntArrIntArr[0][0][0][0] intint val_at_30 = * (IntPtr+3);// = val_at_30 = * (IntPtr+3);// = IntArrIntArr[3][0][3][0] intint val_at_32 = * (intPtr+3*5+2);// = val_at_32 = * (intPtr+3*5+2);// = IntArrIntArr[3][2][3][2] intint val_at_32 = * ( * (IntPtr+3)val_at_32 = * ( * (IntPtr+3) Phé p toán với con trỏ tron g Phé p toán với con trỏ tron g p gp g mảngmảng IntPtrIntPtr IntPtr+3IntPtr+3 IntPtrIntPtr 33 11 IntPtr+3IntPtr+3 33 11 1313 IntPtr + 2*5 + 3IntPtr + 2*5 + 3 KýKý ttựự vàvà ChCh ỗỗ ii kk SiSi Ch u Ch u ỗỗ ii k ý k ýttựự S tr i ng S tr i ng Phạm Thế Bảo Trường Đạihọc Khoa họcTự nhiên Tp HCM Trường Đại học Khoa học Tự nhiên Tp . HCM KýKý tựtự (character)(character) KýKý tựtự (character)(character)  KiểuKiểu char: char:  kýký tựtự “in“in đượcđược ”” gồmgồm :26:26 chữchữ thườngthường (a ) 26(a ) 26 chữchữ hoahoa  kýký tựtự “in “in đượcđược ” ” gồmgồm : 26 : 26 chữchữ thườngthường (a z ) , 26 (a z ) , 26 chữchữ hoahoa (A Z), 10 (A Z), 10 chữchữ sốsố (0 9), (0 9), khoảngkhoảng trắngtrắng, , cáccác kýký tựtự:: ! “ # $ % & ‘ ( ) * + , ! “ # $ % & ‘ ( ) * + , . / : ; < = > ? @ [ . / : ; < = > ? @ [ \\ ] ^ _ { | } ~ ] ^ _ { | } ~ ()() @@ _{|}_{|}  CácCác kýký tựtự ““khôngkhông in in đượcđược”: tab, ”: tab, lertlert (bell), newline, (bell), newline, formfeedformfeed, ,  cáccác kýký tựtự “in “in đượcđược” ” đặcđặcbiệtbiệt: ‘: ‘\\\\’, ‘’, ‘\\’’, ‘’’, ‘\\”’”’  cáccác kýký tựtự ““khôngkhông in in đượcđược” ” đặcđặcbiệtbiệt: : \\ nn new linenew line \\ nn new linenew line \\aabellbell \\00 null characternull character \\ bb bkbk \\ bb b ac k space b ac k space \\tt horizontal tabhorizontal tab Nhậ ấtKýtNhậ ấtKýt Nhậ p xu ất Ký t ự Nhậ p xu ất Ký t ự  scanfscanf  scanfscanf char char chch;; scanfscanf(“%c”, &(“%c”, &chch););  sửsử dụngdụng cáccác đoạnđoạn macro macro cócó trongtrong thưthư việnviện<<stdio.hstdio.h>> putcharputchar :: đưađưa kýký tựtự rara thiếtthiết bịbị xuấtxuất chuNnchuNn (( stdoutstdout )) putcharputchar : : đưađưa kýký tựtự rara thiếtthiết bịbị xuấtxuất chuNnchuNn (( stdoutstdout ) ) putcharputchar(‘(‘\\n’);n’); getchargetchar: : lấylấykýký tựtự từtừ thiếtthiếtbịbị nhậpnhập chuNnchuNn ((stdinstdin)) chch == getchargetchar ();(); chch = = getchargetchar ();();  g etch g etch: : lấ y lấ y tr ự ctr ự ctiế p tiế p k ý k ý t ự t ự t ừ t ừ b àn b àn p hím p hím khôn g khôn g hiểnhiểnth ị th ị rara mànmàn hìnhhình gg yy ựự pp ýý ựự pp gg ịị chch = = getchgetch();(); getchegetche(): (): lấylấytrựctrựctiếptiếpkýký tựtự từtừ bànbàn phímphím vàvà hiểnhiểnthịthị kýký tựtự rara mànmàn hìnhhình chch == getchegetche ();(); chch getchegetche ();(); thth ge t c h arge t c h ar 11 #include <#include < stdio hstdio h >> 1 . 1 . #include <#include < stdio . hstdio . h >> 2.2. intint main ( void ) main ( void ) ()() 3.3. {{ 4.4. intint c;c; 5.5. /* Note that /* Note that getchargetchar reads from reads from stdinstdin and is line buffered; this means it and is line buffered; this means it will not return until you press ENTER * /will not return until you press ENTER * / will not return until you press ENTER . /will not return until you press ENTER . / 6.6. while ((c = while ((c = getchargetchar()) != '()) != '\\n')n') 7.7. printfprintf("%c", c);("%c", c); t0t0 8.8. re t urn 0 ;re t urn 0 ; 9.9. }} putcharputchar putcharputchar 1.1. /* /* putcharputchar example */ example */ 22 #include <#include < stdio hstdio h >> 2 . 2 . #include <#include < stdio . hstdio . h >> 3.3. /* define some box/* define some box drawing characters */drawing characters */ 44 #define LEFT TOP 0xDA#define LEFT TOP 0xDA 4 . 4 . #define LEFT _ TOP 0xDA#define LEFT _ TOP 0xDA 5.5. #define RIGHT_TOP 0xBF#define RIGHT_TOP 0xBF 6.6. #define HORIZ 0xC4#define HORIZ 0xC4 #d fi VERT 0 B3#d fi VERT 0 B3 7.7. #d e fi ne VERT 0 x B3#d e fi ne VERT 0 x B3 8.8. #define LEFT_BOT 0xC0#define LEFT_BOT 0xC0 9.9. #define RIGHT_BOT 0xD9#define RIGHT_BOT 0xD9 10.10. intint main(void)main(void) 11.11. {{ 12.12. char char ii, j;, j; 13.13. /* draw the top of the box *//* draw the top of the box */ 14.14. putcharputchar(LEFT_TOP);(LEFT_TOP); 15.15. for (for (ii=0; =0; ii<10; <10; ii++)++) 16.16. putcharputchar(HORIZ); (HORIZ); 17.17. putcharputchar(RIGHT_TOP);(RIGHT_TOP); 18.18. putcharputchar('('\\n');n'); 19.19. /* draw the middle *//* draw the middle */ 20.20. for (for (ii=0; =0; ii<4; <4; ii++)++) 21.21. {{ 22.22. putcha r putcha r (VERT);(VERT); 23.23. for (j=0; j<10; j++)for (j=0; j<10; j++) 24.24. putcharputchar(' ');(' '); 2525 putcharputchar (VERT);(VERT); 25 . 25 . putcharputchar (VERT);(VERT); 26.26. putcharputchar('('\\n');n'); 27.27. }} 28.28. /* draw the bottom *//* draw the bottom */ 29.29. putcharputchar(LEFT_BOT);(LEFT_BOT); 30.30. for (for (ii=0; =0; ii<10; <10; ii++)++) 3131 putcharputchar (HORIZ);(HORIZ); 31 . 31 . putcharputchar (HORIZ);(HORIZ); 32.32. putcharputchar(RIGHT_BOT);(RIGHT_BOT); 33.33. putcharputchar('('\\n');n'); 34.34. return 0;return 0; 35.35. }} Một ố hà kháMột ố hà khá Một s ố hà m khá c Một s ố hà m khá c kbhitkbhit kiểkiể tt óó híhí bấbấ  kbhitkbhit : : kiể m kiể m t ra t ra c ó c ó phí m phí m bấ m bấ m 11 /*/* khbitkhbit example */example */ 1 . 1 . /* /* khbitkhbit example */example */ 2.2. #include <#include <conio.hconio.h>> 3.3. intint main(void)main(void) 44 {{ 4 . 4 . {{ 5.5. cprintfcprintf("Press any key to continue:");("Press any key to continue:"); hil (!hil (! kbhitkbhit ()) /* d thi */()) /* d thi */ 6.6. w hil e (! w hil e (! kbhitkbhit ()) /* d o no thi ng */ ; ()) /* d o no thi ng */ ; 7.7. cprintfcprintf("("\\rr\\nAnA key was pressed key was pressed \\rr\\n");n"); t0t0 8.8. re t urn 0 ;re t urn 0 ; 9.9. }} [...]...Chuỗi Ch ỗi ký t – St i tự Strings Một số qui t c Nhập Nhậ / xuất ất Con trỏ và chuỗi ký tự Một số hàm thư viện Chuỗi Ch ỗi ký t - Mộ số qui t c tự Một ố i ắ Chuỗi ký t là mảng một chiều c mỗi thà h phần là một Ch ỗi tự ả ột hiề ó ỗi thành hầ ột số nguyên đư c kết th c bởi số 0 Ký tự kết th c (0) ở cuối chuỗi ký tự thường đư c gọi là ký tự null (không giống con trỏ NULL) C thể ghi là 0 NULL) ho c. .. 'u' 'n' n 'u' u 'l' l 0 characters 'N' 'o' N o 32 0 'l' l 'r' 't' 0 Chuỗi Ch ỗi ký t - Nhậ / xuất tự Nhập ấ C thể nhập / xuất chuỗi ký tự s bằng c ch nhập từng ký ập ý ự g ập g ý tự c a s Ho c sử dụng c c hàm scanf và printf với ký tự định dạng “%s” char other[] = "Tony Blurt"; printf("%s\n", other); Nhập chuỗi c khoảng trắng dùng hàm gets char name[100]; printf("Nhap mot chuoi ky tu %s: "); gets(name);... trỏ NULL) C thể ghi là 0 NULL) ho c ‘\0’ (không phải chữ o) ặ ( gp o) ) Đư c khai báo và truyền tham số như mảng một chiều chiều char s[100]; unsigned char s1[1000]; Chuỗi Ch ỗi ký t - Ví d tự dụ char first name [5] = { 'J' 'o' 'h' 'n' '\0' }; first_name [5] 'J', 'o', 'h', 'n', char last_name[6] = "Minor"; char other[] = "Tony Blurt"; char characters[8] = "No null"; first_name first name 'J' J 'o' o... Blurt"; printf("%s\n", other); Nhập chuỗi c khoảng trắng dùng hàm gets char name[100]; printf("Nhap mot chuoi ky tu %s: "); gets(name); Lưu ý L ý: kết thú chuỗi th c h ỗi #include int { main() char other[] = "Tony Blurt"; "Blurt" sẽ không Blurt đư c in ra printf( %s\n printf("%s\n", other); other[4] = '\0'; printf("%s\n", other); Tony Blurt Tony return 0; } other 'T' 'o' ‘n’ 'y' 32 'B' 'l' 'u' . Tp . HCM KýKý tựtự (character)(character) KýKý tựtự (character)(character)  KiểuKiểu char: char:  kýký tựtự “in“in đư c ư c ”” gồmgồm :26:26 chữchữ thườngthường (a ) 26(a ) 26 chữchữ hoahoa  kýký tựtự “in . đư c ượckếtkết thúcth c bởibởisốsố 00  KýKý tựtự kếtkết thúcth c (( 00 )) ởở cuốicuối chuỗichuỗi kýký tựtự thườngthường đư c ư c gọigọi làlà  KýKý tựtự kếtkết thúcth c (( 00 )) ởở cuốicuối chuỗichuỗi kýký tựtự thườngthường đư c ư c gọigọi làlà kýký. hìnhhình gg yy ựự pp ýý ựự pp gg ịị chch = = getchgetch();(); getchegetche(): (): lấylấytrựctrựctiếptiếpkýký tựtự từtừ bànbàn phímphím vàvà hiểnhiểnthịthị kýký tựtự rara mànmàn hìnhhình chch == getchegetche ();(); chch getchegetche ();(); thth ge t c h arge t c h ar 11 #include

Ngày đăng: 22/07/2014, 16:21

w