You are on page 1of 19

&&

VC
VC
BB
BB

Ni dung

Khi nim

Khi to

Cc thao tc trn chui k t

Bi tp

NMLT - Chui k t

&&

VC
VC
BB
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

NMLT - Chui k t

&&

VC
VC
BB
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

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

T H C S A \0
NMLT - Chui k t

&&

VC
VC
BB
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
_

NMLT - Chui k t

&&

VC
VC
BB
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_
NMLT - Chui k t

&&

VC
VC
BB
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 _
NMLT - Chui k t

&&

VC
VC
BB
BB

Mt s hm thao tc trn chui

Thuc th vin <string.h>


strcpy
strdup
strlwr/strupr
strrev
strcmp/stricmp
strcat
strlen
strstr
NMLT - Chui k t

&&

VC
VC
BB
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
a ch chui dest
char s[100];
s = Tin hoc co so A;
// sai
strcpy(s, Tin hoc co so A); // ng

NMLT - Chui k t

&&

VC
VC
BB
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 cha
chui s.
Thnh cng: a ch chui kt qu
Tht bi: null
char *s;
s = strdup(Tin hoc co so A);

NMLT - Chui k t

&&

VC
VC
BB
BB

Hm chuyn chui thnh ch thng


char *strlwr(char *s)

Chuyn chui s thnh chui thng


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

a ch chui s
char s[] = Tin hoc co so A!!!;
strlwr(s);
puts(s);
// tin hoc co so
a!!!
NMLT - Chui k t

&&

VC
VC
BB
BB

Hm chuyn chui thnh ch IN


char *strupr(char *s)

Chuyn chui s thnh chui in (a


thnh A, b thnh B, , z thnh
Z)

a ch chui s
char s[] = Tin hoc co so A!!!;
strupr(s);
puts(s);
// TIN HOC CO SO
A!!!
NMLT - Chui k t

&&

VC
VC
BB
BB

Hm o ngc chui
char *strrev(char *s)

o ngc th t cc k t trong chui


(tr k t kt thc chui)

a ch chui kt qu
char s[] = Tin hoc co so A!!!;
strrev(s);
puts(s);
// !!!A os oc coh
niT
NMLT - Chui k t

&&

VC
VC
BB
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[] = tin hoc co so A!!!;
char s2[] = hoc tin co so A!!!;
int kq = strcmp(s1, s2);
// => kq
>0
NMLT - Chui k t

&&

VC
VC
BB
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[] = tin hoc co so A!!!;
char s2[] = TIN HOC CO SO A!!!;
int kq = stricmp(s1, s2);
// => kq
== 0
NMLT - Chui k t

&&

VC
VC
BB
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

a ch ca chui c ni
char s1[100] = Tin hoc;
char s2[] = co so A!!!;
strcat(s1, );// => Tin hoc
strcat(s1, s2); // => Tin hoc co so
A!!!
NMLT - Chui k t

&&

VC
VC
BB
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

char s[] = Tin hoc co so A!!!;


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

NMLT - Chui k t

&&

VC
VC
BB
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[] = Tin hoc co so A!!!;
char s2[] = hoc;
if (strstr(s1, s2) != null)
printf(Tim thay!);
NMLT - Chui k t

&&

VC
VC
BB
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 upper(char s[]) i ton b cc k
t sang k t hoa (ging hm strupr)
Bi 3: Vit hm lower(char s[]) i ton b cc k
t sang k t thng (ging hm strlwr)
Bi 4: Vit hm proper(char s[]) i cc k t u
tin ca mi t sang k t hoa.
NMLT - Chui k t

&&

VC
VC
BB
BB

Bi tp

Bi 5: Vit hm standard(char s[]) b ton b


khong trng u chui, cui chui v gia 2 t
trong s ch cn 1 khong trng.
Bi 6: Xa tt c cc khong trng ca s
Bi 7: m xem c bao nhiu t trong s. Xut
cc t trn cc dng lin tip.
Bi 8: Tm t c chiu di di nht v in ra.
Bi 9: Trch ra n k t u tin/cui cng/bt u
ti v tr pos.
NMLT - Chui k t

You might also like