You are on page 1of 6

Sharing by CCI Group -

Cch s dng cc hm trong chui k t

MOT SO LU Y VE KIEU CHUOI K T TRONG C++


1/ Hieu ve chuoi k t va con tro Chuoi k t la mot mang cac k t ch va ch so, no c ket thuc bi k t \0 Chuoi k t cung la mot con tro, no luon tro ve v tr au tien cua chuoi. Ch : Khi thao tc trn chui phi m bo rng chui c xut ra phi c k t \0 Khi con tr tr vo chui no th nu mi thao tc trn con tr s lm chui thay i , ngoi tr vic con tr tr vo chui khc (xem Vd 3 bn di). C nhng dng khai bo bt buc phi tun theo. Mot so v du v cch khai bo chui v con tr Qut khi mu xanh l ch sai Vd1:
char a[50]; a="ngon ngu";

puts(a);-> bao loi Bt buc phi khai bo nh th ny puts(a);-> ngon ngu Vd2: char *s,*a;
a="ngon ngu"; char a[50]="ngon ngu";

s=a;

puts(s);-> ngon ngu hoc khai bao la: s=a; puts(s);-> ngon ngu Vd 3:

char *s,*a="ngon ngu";

char *s,a[50]= "ngon ngu";

s=a+5; puts(s);-> ngu Vd 4:

char s[50],a[50]= ngon ngu; Trng Vn Vit_C10CT10


Page 1

Sharing by CCI Group s=a+5; puts(s);-> bao loi Vd 5:


char *s,a[50]= "ngon ngu";

Cch s dng cc hm trong chui k t

s=a[5]; puts(s);-> bao loi Vd 6:

char *s,a[50]= ngon ngu; s[2]=a+5; puts(s);-> bao loi Vd7:


char *s,a[50]= "ngon ngu";

s+2=a+5; hoc s=a; s+2=a+5; puts(s);-> bao loi Vd 8:

char *s,a[20]="cho",b[20]="meo";

s=a;

s[0]='t';

s=b; puts(s);->meo puts(a);->tho Vd 9:


char *s,a[20]="cho",*b;

s=a; b=s;

s=s+1; puts(s);->ho puts(a);->cho Vd10:


char *s,a[50]= "ngon ngu";

s+2=a+5; hoc s=a; s+2=a+5;

puts(s);-> bao loi Vd 11: bt buc phi khai bo nh th ny( Vd 12,13,14 l khai bo sai)
char a[100]= {'n','g','o','n','1','2','3','n','g','u','\0'};

Trng Vn Vit_C10CT10

Page 2

Sharing by CCI Group Vd 12:


puts(a);->ngon123ngu

Cch s dng cc hm trong chui k t

char *s,a[100]; a= {'n','g','o','n','1','2','3','n','g','u','\0'};

Vd 13:

puts(a);->

bao loi

char *a= {'n','g','o','n','1','2','3','n','g','u','\0'};

Vd 14:

puts(a);->

bao loi

puts(a);-> bao loi 2/ Cach dung mot so ham trong chuoi k t -Ham strlen: tm di ca xu: strlen(a); vi a l mt chui hoc a l con tr c tr vo 1 chui no .

char *a; a= {'n','g','o','n','1','2','3','n','g','u','\0'};

strlen(conmeo);->6 -Ham strcat: ni xu b vo xu a strcat(a,b); vi a la chuoi hoac a la con tro a c tro vao chuoi no , vi b la chuoi hoac b la con tro a c tro vao chuoi no . Vd:
char b[20]="ngon",c[20]="ngu",*s=c; strcat(b,s); puts(b);

-Ham strcpy: copy xu b vo xu a:

strcpy(a,b); vi a la chuoi hoac a la con tro a c tro vao chuoi no , vi b la chuoi hoac b la con tro a c tro vao chuoi no . Vd:
char b[20]="ngon",c[20]="ngu",*s=b; strcpy(s,c); nu puts(s);->ngu

strcpy(s+4,c) ->kt qu l ngonngu

-Ham strncpy: copy n k t xu b vo xu a: strncpy(a,b,n); vi a la chuoi hoac a la con tro a c tro vao chuoi no , vi b la chuoi hoac b la con tro a c tro vao chuoi no ,n la so k t can copy. Vd: Trng hp a la con tro a c tro(tng t trng hp a l chui c gn gi tr) Trng Vn Vit_C10CT10
Page 3

Sharing by CCI Group -

Cch s dng cc hm trong chui k t

Trng hp a la chuoi trong

char b[20]="ngon",c[20]="ngulaptrinh",*a=b; strncpy(a,c,6); puts(a);->ngulap char c[20]="ngulaptrinh",s[20]; strncpy(s,c,6); s[6]='\0'; lu y cho puts(s); ->ngulap

nay

-Ham strstr: tm s xut hin ca xu b trong xu a strstr(a,b); vi a la chuoi hoac a la con tro a c tro vao chuoi no , vi b la chuoi hoac b la con tro a c tro vao chuoi no . Vd:
char a[20]="ngonngulaptrinh",b[10]="lap",*s; s=strstr(a,b); puts(s);->laptrinh

-Ham strchr: tm s xut hin ca k t b trong xu a Vd:


char a[20]="phanmem",b='m',*s; s=strchr(a,b); puts(s);->mem

strchr(a,b); vi a la chuoi hoac a la con tro a c tro vao chuoi no , vi b la mt k t.

-Ham strrev:o ngc chui a strrev(a); vi a la chuoi hoac a la con tro a c tro vao chuoi no .
char s[255]="con co"; Cout<<strrev(s);->oc noc Ch : khi gi strrev(s) th s s b o ngc ngay lp tc char *a,s[255]="con co"; a=strrev(s); puts(a);->oc noc puts(s);->oc noc ->vn l ch ny

Vd:

-Ham strlwr: i thnh xu thng


strlwr(a) : a l con tr c tr hoc chui Vd:
char a[20]="BAI TAP"; puts(strlwr(a));->bai tap

-ham strupr: i thnh xu hoa strupr(a) : a l con tr c tr hoc chui Vd: Trng Vn Vit_C10CT10

char a[20]="bai tap";

Page 4

Sharing by CCI Group -Ham touper: i 1 k t thnh k t hoa strupr(a) : a l 1 k t


Vd:
char a='b',s; s=toupper(a); cout<<s;->B puts(strlwr(a));->BAI TAP

Cch s dng cc hm trong chui k t

-Ham strcmp: So snh 2 xu a v b c phn bit hoa thng


strcmp(a,b); vi a la con tro a c tro vao chuoi hoac a la chuoi, b la con tro a c tro vao

chuoi hoac b la chuoi. kt qu tr v l: 0 nu 2 xu bng nhau gi tr m nu xu a nh hn b gi tr dng nu xu a ln hn b Vd:


char a[10]="anh",b[10]="Anh"; cout<<strcmp(a,b);->1 v a(97)>A(65) => a>b

-Tng t hm strcmpi ( hoc stricmp): so snh 2 xu a v b c khng bit hoa thng

Vd:

-Ham strncmp: So snh n k t u tin ca 2 xu a,b c phn bit hoa thng


strcmp(a,b,n); vi a la con tro a c tro vao chuoi hoac a la chuoi, b la con tro a c tro vao

char a[10]="anh",b[10]="Anh"; cout<<strcmp(a,b);->0

chuoi hoac b la chuoi,n s k t so snh -Ham strncmpi: So snh n k t u tin ca 2 xu a,b khng phn bit hoa thng
strcmpi(a,b,n); vi a la con tro a c tro vao chuoi hoac a la chuoi, b la con tro a c tro vao

chuoi hoac b la chuoi,n s k t so snh -Hm strcspn: Tr v v tr u tin ca bt c k t no trong a tm thy trong b. Nu khng tm thy th tr v di chui a Vd: char *str="Xcross87 "; char *key="123456789";
int pos = strcspn(str,key);

cout << "tim thay o vi tri" << pos; ->tim thay o vi tri 6 -Hm strpbrk: Tr v v tr ca k t u tin trong chui a m khng khp b.Tr v NULL nu khng tm thy. Vd: char *str1="con ga trong ko phai la con ga mai"; Trng Vn Vit_C10CT10
Page 5

Sharing by CCI Group char *str2="1234956za"; char* found; found = strpbrk(str1,str2);

Cch s dng cc hm trong chui k t

if (found!= NULL ) cout << " Tim thay ki tu dau tien: " << *found; ->Tim thay ki tu au tien a -Hm memset: khi to chui a vi n k t u tin l k t b memset(a,b,n); a chui cn to, b k t cn to,n s k t cn to Vd: char a[20]; memset(a,k,5); a[5]=\0; cout<<a;->kkkkk

BNG M ASCII

Trng Vn Vit_C10CT10

Page 6

You might also like