KTLT C17 ChuoiKyTu - PPT (By Bsquochoai - Ga)

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

B mn Cng ngh phn mm

Khoa Cng ngh thng tin


Trng i hc Khoa hc T nhin

K THUT LP TRNH
ThS. ng Bnh Phng
dbphuong@fit.hcmus.edu.vn

CHUI K T

1
&
VC
BB
Ni dung

1 Khi nim

2 Khi to

3 Cc thao tc trn chui k t

4 Bi tp

Chui k t
2
&
VC
BB
Khi nim

Khi nim
Kiu char ch cha c mt k t. lu
tr mt chui (nhiu k t) ta s dng mng
(mt chiu) cc k t.
Chui k t kt thc bng k t \0 (null)
di chui = kch thc mng 1
V d
char hoten[30]; // Di 29 k t
char ngaysinh[9]; // Di 8 k t

Chui k t
3
&
VC
BB
Khi to

Khi to nh mng thng thng


di c th
char s[10] = {T, H, C, S, , A, \0};
char s[10] = THCS A; // T ng thm \0
0 1 2 3 4 5 6 7 8 9

T H C S A \0
T xc nh di
char s[] = {T, H, C, S, , A, \0};
char s[] = THCS A; // T ng thm \0
0 1 2 3 4 5 6

T H C S A \0

Chui k t
4
&
VC
BB
Xut chui

S dng hm printf vi c t %s
char monhoc[50] = Tin hoc co so A;
printf(%s, monhoc); // Khng xung dng

Tin hoc co so A_

S dng hm puts
char monhoc[50] = Tin hoc co so A;
puts(monhoc); // T ng xung dng
printf(%s\n, monhoc);
Tin hoc co so A
_

Chui k t
5
&
VC
BB
Nhp chui

S dng hm scanf vi c t %s
Ch nhn cc k t t bn phm n khi gp
k t khong trng hoc k t xung dng.
Chui nhn c khng bao gm k t
khong trng v xung dng.
char monhoc[50];
printf(Nhap mot chuoi: );
scanf(%s, monhoc);
printf(Chuoi nhan duoc la: %s, monhoc);
Nhap mot chuoi: Tin hoc co so A
Chuoi nhan duoc la: Tin_

Chui k t
6
&
VC
BB
Nhp chui

S dng hm gets
Nhn cc k t t bn phm n khi gp k t
xung dng.
Chui nhn c l nhng g ngi dng
nhp (tr k t xung dng).
char monhoc[50];
printf(Nhap mot chuoi: );
gets(monhoc);
printf(Chuoi nhan duoc la: %s, monhoc);
Nhap mot chuoi: Tin hoc co so A
Chuoi nhan duoc la: Tin hoc co so A _

Chui k t
7
&
VC
BB
Mt s hm thao tc trn chui

Thuc th vin <string.h>


strlen
strcpy
strdup
strlwr/strupr
strrev
strcmp/stricmp
strcat
strstr
Chui k t
8
&
VC
BB
Hm tnh di chui

size_t strlen(const char *s)

Tnh di chui s.
size_t thay cho unsigned (trong <stddef.h>)
dng o cc i lng khng du.

di chui s (khng tnh k t kt thc)

char s[] = Visual C++ 6.0;


int len = strlen(s); // => 14

Chui k t
9
&
VC
BB
Hm sao chp chui

char *strcpy(char *dest, const char *src)

Sao chp chui src sang chui dest, dng


khi k t kt thc chui \0 va c chp.
! dest phi ln cha src

Con tr dest.

char s[100];
s = Visual C++ 6.0; // sai
strcpy(s, Visual C++ 6.0); // ng

Chui k t
10
&
VC
BB
Hm to bn sao

char *strdup(const char *s)

To bn sao ca mt chui s cho trc.


Hm s t to vng nh di strlen(s) + 1
(bytes) cha chui s. Phi t hy vng
nh ny khi khng s dng na.
Thnh cng: tr v con tr n vng nh
cha chui bn sao.
Tht bi: tr v NULL.

char *s;
s = strdup(Visual C++ 6.0);

Chui k t
11
&
VC
BB
Hm chuyn thnh chui thng

char *strlwr(char *s)

Chuyn chui s thnh chui thng (A


thnh a, B thnh b, , Z thnh z)

Con tr n chui s.

char s[] = Visual C++ 6.0;


strlwr(s);
puts(s); // visual c++ 6.0

Chui k t
12
&
VC
BB
Hm chuyn thnh chui IN

char *strupr(char *s)

Chuyn chui s thnh chui IN (a thnh A,


b thnh B, , z thnh Z)

Con tr n chui s.

char s[] = Visual C++ 6.0;


strupr(s);
puts(s); // VISUAL C++ 6.0

Chui k t
13
&
VC
BB
Hm o ngc chui

char *strrev(char *s)

o ngc th t cc k t trong chui s


(tr k t kt thc chui).

Con tr n chui kt qu.

char s[] = Visual C++ 6.0;


strrev(s);
puts(s); // 0.6 ++C lausiV

Chui k t
14
&
VC
BB
Hm so snh hai chui

int strcmp(const char *s1, const char *s2)

So snh hai chui s1 v s2 (phn bit hoa


thng).

< 0 nu s1 < s2
== 0 nu s1 == s2
>0 nu s1 > s2

char s1[] = visual C++ 6.0;


char s2[] = Visual C++ 6.0;
int kq = strcmp(s1, s2); // => kq > 0

Chui k t
15
&
VC
BB
Hm so snh hai chui

int stricmp(const char *s1, const char *s2)

So snh hai chui s1 v s2 (khng phn bit


hoa thng).

< 0 nu s1 < s2
== 0 nu s1 == s2
>0 nu s1 > s2

char s1[] = visual c++ 6.0;


char s2[] = VISUAL C++ 6.0;
int kq = stricmp(s1, s2);// => kq == 0

Chui k t
16
&
VC
BB
Hm ni hai chui

char* strcat(char *dest, const char *src)

Ni chui src vo sau chui dest.


! Chui dest phi cha kt qu

Con tr n chui c ni.

char s1[100] = Visual C++;


char s2[] = 6.0;
strcat(s1, ); // => Visual C++
strcat(s1, s2); // => Visual C++ 6.0

Chui k t
17
&
VC
BB
Hm tm chui trong chui

char* strstr(const char *s1, const char *s2)

Tm v tr xut hin u tin ca s2 trong s1

Thnh cng: tr v con tr n v tr xut


hin u tin ca s2 trong s1.
Tht bi: tr v null.
char s1[] = Visual C++ 6.0;
char s2[] = C++;
if (strstr(s1, s2) != null)
printf(Tim thay s2 trong s1);

Chui k t
18
&
VC
BB
Bi tp

Bi 1: Xem thm mt s hm khc nh:


atoi, atol, atof : i chui thnh s.
itoa, ltoa, ultoa: i s thnh chui.
strtok
Bi 2: Vit hm nhn vo mt chui v tr v
chui tng ng (gi nguyn chui u vo):
Cc k t thnh k t thng (ging strlwr).
Cc k t thnh k t hoa (ging strupr).
Cc k t u tin mi t thnh k t hoa.
Chun ha chui (xa khong trng tha).
Chui k t
19
&
VC
BB
Bi tp

Bi 3: Vit hm nhn vo mt chui s v tr v


chui tng ng sau khi xa cc khong trng.
Bi 4: Vit hm nhn vo mt chui s v m
xem c bao nhiu t trong chui .
Bi 5: Vit hm nhn vo mt chui s v xut
cc t trn cc dng lin tip.
Bi 6: Vit hm tm t c chiu di ln nht v
xut ra mn hnh t v di tng ng.
Bi 7: Vit hm trch ra n k t u tin/cui
cng/bt u ti v tr pos ca chui s cho trc.
Chui k t
20

You might also like