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
Tài liệu đã được kiểm tra trùng lặp

Đ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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ký ttựự và và Ch Chu Chuỗỗii ký ký ttựự -- String String Phạm Thế Bảo Trường Đại học Khoa học Tự nhiên Tp HCM... Nhậ ất Ký tNhập xuất Ký tự „ scanf „ scanf char char ch ch;; scanf scanf

Trang 1

Di

Di chuyển chuyển con con trỏ trỏ trong trong mảng mảng

i t

i t I tAI tA [5] {3 4 2 1 0}[5] {3 4 2 1 0}

int

int IntArrIntArr[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’};’};

i t

i t **I tPtI tPt I tA

int

int **IntPtrIntPtr = = IntArrIntArr;;

char *

char *charPtrcharPtr = = CharArrCharArr;;

„ Di Di chuyểnchuyển trongtrong mảngmảng 1 1 chiềuchiều::

int

int val_at_0 = * val_at_0 = * IntPtrIntPtr;; // = // = IntArrIntArr[0][0]

i t l t 3 * (I tPt +3) //l t 3 * (I tPt +3) // I tAI tA [3][3]

int

int val_at_3 = * (IntPtr+3); // = val_at_3 = * (IntPtr+3); // = IntArrIntArr[3][3]

IntPtr IntPtr+1 IntPtr+1 IntPtr+2 IntPtr+2

Trang 2

Phép toán với con trỏ trong p p g g mảng

#define ROWS 5

i t

i t I tAI tA [ROWS][COLS] {{3 4 2 1 0}[ROWS][COLS] {{3 4 2 1 0}

int

int IntArrIntArr[ROWS][COLS] = {{3,4,2,1,0},[ROWS][COLS] = {{3,4,2,1,0},

{5,6,7,8,9}, {10 11 12 13 14}};

int

int **IntPtrIntPtr = = IntArrIntArr;;

„ ThamTham chiếuchiếu đếnđến phầnphần tửtử trongtrong mảngmảng 2 2 chiềuchiều::

int

int val_at_00 = * val_at_00 = * IntPtrIntPtr;// = ;// = IntArrIntArr[0][0][0][0]

int

int val_at_30 = * (IntPtr+3);// = val_at_30 = * (IntPtr+3);// = IntArrIntArr[3][0][3][0]

int

int val_at_32 = * (intPtr+3*5+2);// = val_at_32 = * (intPtr+3*5+2);// = IntArrIntArr[3][2][3][2] int

int val_at_32 = * ( * (IntPtr+3)val_at_32 = * ( * (IntPtr+3)

Trang 3

Phép toán với con trỏ trong p p g g mảng

IntPtr

IntPtr+3

13

IntPtr + 2*5 + 3

Trang 4

Ký ttựự và và Ch

Chu

Chuỗỗii ký ký ttựự String String

Phạm Thế Bảo Trường Đại học Khoa học Tự nhiên Tp HCM

Trang 5

Ký tự tự (character) (character)

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, formfeed

formfeed, ,

„ cáccác kýký tựtự “in “in đượcđược” ” đặcđặc biệtbiệt: ‘: ‘\\\\’, ‘’, ‘\\’’, ‘’’, ‘\\”’”’

„ cáccác kýký tựtự ““khôngkhông in in đượcđược” ” đặcđặc biệtbiệt: :

\\nn new linenew line

\\nn new linenew line

\\aa bell

\\00 null characternull character

\\bb b kb k

\\bb backspacebackspace

\\tt horizontal tab

Trang 6

Nhậ ất Ký t

Nhập xuất Ký tự

„ scanf

„ scanf

char

char ch ch;;

scanf scanf(“%c”, & (“%c”, &ch ch); );

„ sử sử dụng dụng các các đoạn đoạn macro macro có có trong trong thư thư viện viện < <stdio.h stdio.h> >

putchar

putchar:: đưa đưa ký ký tự tự ra ra thiết thiết bị bị xuất xuất chuNn chuNn ((stdout stdout))

putchar

putchar: : đưa đưa ký ký tự tự ra ra thiết thiết bị bị xuất xuất chuNn chuNn ((stdout stdout) )

putchar

putchar(‘ (‘\\n’); n’);

getchar

getchar: : lấy lấy ký ký tự tự từ từ thiết thiết bị bị nhập nhập chuNn chuNn ((stdin stdin))

ch

ch = = getchar getchar(); ();

ch

ch = = getchar getchar(); ();

„ getch getch: : lấy gg lấy trực yy ựự trực tiếp tiếp ký pp ýý ựự ký tự tự từ từ bàn bàn phím phím không pp không hiển gg hiển thị thị ra ịị ra màn màn hình hình

ch

ch = = getch getch(); ();

getche

getche(): (): lấy lấy trực trực tiếp tiếp ký ký tự tự từ từ bàn bàn phím phím và và hiển hiển thị thị ký ký tự tự ra ra màn màn hình hình

ch

ch = = getche getche(); ();

ch

ch getche getche(); ();

Trang 7

t h

getchar

11 #include < #include <stdio h stdio h> >

1 #include < #include <stdio.h stdio.h> >

2 int int main(void) main(void) ( ( ) )

3 {{

4 int int c; c;

5 /* Note that /* Note that getchar getchar reads from reads from stdin stdin and is line buffered; this means it and is line buffered; this means it will not return until you press ENTER */

6 while ((c = while ((c = getchar getchar()) != ' ()) != '\\n') n')

7 printf printf("%c", c); ("%c", c);

t 0

t 0

8 return 0;

9 }}

Trang 8

1 /* /* putchar putchar example */ example */

22 #include < #include <stdio h stdio h> >

2 #include < #include <stdio.h stdio.h> >

3 /* define some box /* define some box drawing characters */ drawing characters */

7 #define VERT 0xB3

10 int int main(void) main(void)

11 {{

12 char char ii, j; , j;

13 /* draw the top of the box */

14 putchar putchar(LEFT_TOP); (LEFT_TOP);

15 for ( for (ii=0; =0; ii<10; <10; ii++) ++)

16 putchar putchar(HORIZ); (HORIZ);

Trang 9

17 putchar putchar(RIGHT_TOP); (RIGHT_TOP);

18 putchar putchar('('\\n'); n');

19 /* draw the middle */

20 for ( for (ii=0; =0; ii<4; <4; ii++) ++)

21 {{

22 putchar putchar(VERT); (VERT);

23 for (j=0; j<10; j++)

24 putchar putchar(' '); (' ');

25 putchar putchar(VERT); (VERT);

25 putchar putchar(VERT); (VERT);

26 putchar putchar('('\\n'); n');

27 }}

28 /* draw the bottom */

29 putchar putchar(LEFT_BOT); (LEFT_BOT);

30 for ( for (ii=0; =0; ii<10; <10; ii++) ++)

31 putchar putchar(HORIZ); (HORIZ);

31 putchar putchar(HORIZ); (HORIZ);

32 putchar putchar(RIGHT_BOT); (RIGHT_BOT);

33 putchar putchar('('\\n'); n');

34 return 0;

35 }}

Trang 10

Một ố hà khá

Một số hàm khác

kbhit

kbhit kiểkiể tt óó híhí bấbấ

„ kbhitkbhit: : kiểmkiểm tratra cócó phímphím bấmbấm

11 /*/* khbitkhbit example */example */

1. /* /* khbitkhbit example */example */

2. #include <#include <conio.hconio.h>>

3. intint main(void)main(void)

5. cprintfcprintf("Press any key to continue:");("Press any key to continue:");

hil (!

hil (!kbhitkbhit()) /* d()) /* d thithi */*/

6. while (!while (!kbhitkbhit()) /* do nothing */ ;()) /* do nothing */ ;

7. cprintfcprintf("("\\rr\\nAnA key was pressed key was pressed \\rr\\n");n");

8. return 0;

Trang 11

Ch ỗi ký t St i

Chuỗi ký tự

Chuỗi ký tự –– Strings Strings

„ MộtMột sốsố quiqui tắctắc

Nhậ

„ NhậpNhập // xuấtxuất

„ ConCon trỏtrỏ vàvà chuỗichuỗi kýký tựtự

„ MộtMột sốsố hàmhàm thưthư việnviện

Trang 12

Ch ỗi ký t Mộ ố Mộ ố i ắ i ắ

Chuỗi ký tự

„ Ch ỗiCh ỗi kýký tt làlà ảả ộtột hiềhiề óó ỗiỗi thà hthà h hầhầ làlà ộtột

„ ChuỗiChuỗi kýký tựtự làlà mảngmảng mộtmột chiềuchiều cócó mỗimỗi thànhthành phầnphần làlà mộtmột số

số nguyênnguyên đượcđược kếtkết thúcthúc bởibởi số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ý tựtự nullnull (không(không giốnggiống concon trỏtrỏ NULL)NULL) CóCó thểthể ghighi làlà 00 hoặc

hoặc ‘‘\\00’’ (khôngặặ (không phải(( gg ppphải chữchữ o)o) ))

„ ĐượcĐược khaikhai báobáo vàvà truyềntruyền thamtham sốsố nhưnhư mảngmảng mộtmột chiềuchiều

char s[100];

unsigned char s1[1000];

unsigned char s1[1000];

Trang 13

Ch ỗi ký t Ví d

Chuỗi ký tự

char first_name[5] = { 'J', 'o', 'h', 'n', '\0' }; char last_name[6] = "Minor";

char other[] = "Tony Blurt";

char characters[8] = "No null";

first_name

last_name

other characters

Trang 14

Ch ỗi ký t Nhậ / Nhậ / ấ ấ

„ CóCó thểthể nhậpnhập // xuấtxuất chuỗichuỗi kýký tựtự ss bằngbằng cáchcách nhậpnhập từngtừng kýký

Chuỗi ký tự

tự

tự củacủa ss

„ HoặcHoặc sửsử dụngdụng cáccác hàmhàm scanfscanf vàvà printfprintf vớivới kýký tựtự địnhđịnh dạng

dạng ““%%s”s”

char other[] = "Tony Blurt";

printf("%s\n", other);

„ NhậpNhập chuỗichuỗi cócó khoảngkhoảng trắngtrắng dùngdùng hàmhàm getsgets

char name[100];

printf("Nhap mot chuoi ky tu %s: "); gets(name);

Trang 15

L ý kết thú h ỗi

Lưu ý: kết thúc chuỗi

#include <stdio.h>

{

char other[] = "Tony Blurt";

Blurt sẽ không được in ra

printf( %s\n , other);

other[4] = '\0';

Tony return 0;

}

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

🧩 Sản phẩm bạn có thể quan tâm

w