Baỡi tỏỷp Tin hoỹc aỷi cổồng 122 Phỏửn VI : KIỉU XU CHặẻ 1. Tỗm hióứu cuù phaùp vaỡ chổùc nng cuớa haỡm strcpy. a.Khai baùo b.Cọng duỷng: sao ch char *strcpy(char *dest, const char *src); eùp mọỹt xỏu chổợ vaỡo xỏu chổợ khaùc h> tring.h> g[100]; char *str1 = "Khoa Cong Nghe Thong Tin"; uù phaùp vaỡ chổùc nng haỡm strcat. dest, const char *src); ọỹt xỏu chổợ vaỡo 1 xỏu khaùc .h> stdio.h> > c = "Ngoai Ngu Hoa Khanh"; m"; st1); strcat(st,blank); strcat(st,c); c. Vờ duỷ: include <stdio.# #include <s #include <conio.h> int main(void) { clrscr(); char strin strcpy(string, str1); printf("%s\n", string); getch(); } 2. Tỗm hióứu c a.Khai baùo char *strcat(char * b.Cọng duỷng: Nọỳi m c. Vờ duỷ: #include <string #include < #include <conio.h int main(void) { clrscr(); char st[25]; char *blank = " ", * char *st1 = "Trung Ta strcpy(st, printf("%s\n",st ); getch(); } Nguyóựn Vn Nguyón- Khoa CNTT-TVT aỷi hoỹc Baùch Khoa aỡ Nụng Baỡi tỏỷp Tin hoỹc aỷi cổồng 123 3. Tỗm hióứu cuù phaùp vaỡ chổùc nng cuớa haỡm strcmp onst char*s2); ỷng: So saùnh 2 xỏu chổợ m nóỳu s1<s2 nóỳu s1=s2 nóỳu s1>s2 ỷ: clude <string.h> h> s2; ntf(" Nhap chuoi s2="); ts(s2); cuù phaùp vaỡ chổùc nng cuớa haỡm strlen a.Khai baùo t char *s); ỹ daỡi cuớa xỏu chổợ h> clude <string.h> io.h> void) ar *string = "Khoa Cong Nghe Thong Tin -Dien tu Vien ong"; cuù phaùp vaỡ chổùc nng cuớa haỡm strlwr a.Khai baùo int strcmp(const char *s1, c b.Cọng du + Giaù trở traớ vóử sọỳ ỏ + Giaù trở traớ vóử =0 + Giaù trở traớ vóử >0 c. Vờ du #in #include <stdio. #include <conio.h> main() { char *s1,* printf(" Nhap chuoi s1="); gets(s1); pri ge printf("%i",strcmp(s1,s2)); getch(); } 4. Tỗm hióứu size_t strlen(cons b.Cọng duỷng: Lỏỳy õọ c. Vờ duỷ: #include <stdio. #in #include <con int main( { clrscr(); ch Th printf("%d\n", strlen(string)); getch(); } 5. Tỗm hióứu a.Khai baùo Nguyóựn Vn Nguyón- Khoa CNTT-TVT aỷi hoỹc Baùch Khoa aỡ Nụng Baỡi tỏỷp Tin hoỹc aỷi cổồng 124 char *strlwr(char *s); ỏu chổợ sang chổợ thổồỡng c. Vờ duỷ: h> clude <string.h> nio.h> ring = "Borland International"; printf("chuoi truoc khi doi: %s\n", string); strlwr(string); etch(); huớ tuỷc strupr *s); chổợ sang chổợ hoa Vờ duỷ: h> clude <conio.h> tring.h> "); g); /* converts string to upper case characters */ ptr = strupr(string); getch(); Khai baùo *s, int ch, size_t n); yù tổỷ õỏửu thaỡnh kyù tổỷ ch b.Cọng duỷng: ọứi x #include <stdio. #in #include <co int main(void) { clrscr(); char *st printf("Chuoi sau khi doi: %s\n", string); g } 6. Tỗm hióứu cuù phaùp vaỡ chổùc nng cuớa t a.Khai baùo char *strupr(char b.Cọng duỷng: ọứi xỏu c. #include <stdio. #in #include <s int main(void) { clrscr(); char *string, *ptr; printf("Nhap chuoi vao gets(strin printf("%s\n", ptr); } 7. Tỗm hióứu cuù phaùp vaỡ chổùc nng cuớa thuớ tuỷc strnset a. char *strnset(char b.Cọng duỷng: ỷt n k c. Vờ duỷ: Nguyóựn Vn Nguyón- Khoa CNTT-TVT aỷi hoỹc Baùch Khoa aỡ Nụng Baỡi tỏỷp Tin hoỹc aỷi cổồng 125 #include <stdio.h> clude <conio.h> tring.h> ter = 'x'; printf("Chuoi truoc khi dat: %s\n", string); strnset(string, letter, 13); ù phaùp vaỡ chổùc nng cuớa thuớ tuỷc strnset *s, int ch); ớ caùc kyù tổỷ cuớa s thaỡnh ch g.h> onio.h> printf(" Truoc khi dat: %s\n", string); strset(string, symbol); getch(); char *s, int c); on troớ chố õóỳn c nóỳu khọng traớ vóử NULL Vờ duỷ: h> lude <stdio.h> #in #include <s int main(void) { clrscr(); char *string = "abcdefghijklmnopqrstuvwxyz"; char let printf("Chuoi sau khi dat: %s\n", string); getch(); } 8. Tỗm hióứu cu a.Khai baùo char *strset(char b.Cọng duỷng: ỷt tỏỳt ca c. Vờ duỷ: clude <strin#in #include <c #include <stdio.h> int main(void) { clrscr(); char string[10] = "123456789"; l = 'c'; char symbo printf("Sau khi dat: %s\n", string); } 9. Tỗm hióứu cuù phaùp vaỡ chổùc nng cuớa haỡm strnset a.Khai baùo char *strchr(const b.Cọng duỷng: Traớ vóử c c. #include <conio. #inc #include <string.h> Nguyóựn Vn Nguyón- Khoa CNTT-TVT aỷi hoỹc Baùch Khoa aỡ Nụng Baỡi tỏỷp Tin hoỹc aỷi cổồng 126 int main(void) { strchr(string, c); r) d\n", c, ptr- else printf("The character was not found\n"); char *s, int c); ỏửn xuỏỳt hióỷn cuọỳi cuỡng cuớa c trong s nclude <string.h> h> clude <conio.h> trrchr(string, c); r) d\n", c, ptr- else printf("The character was not found\n"); char string[15]; char *ptr, c = 'r'; strcpy(string, "This is a string"); ptr = if (pt printf("The character %c is at position: % string); getch(); } 10. Tỗm hióứu cuù phaùp vaỡ chổùc nng cuớa haỡm strnset a.Khai baùo char *strrchr(const lb.Cọng duỷng: Traớ vóử c. Vờ duỷ: # i #include <stdio. #in int main(void) { char string[15]; char *ptr, c = 'r'; strcpy(string, "This is a string"); ptr = s if (pt printf("The character %c is at position: % string); getch(); } Nguyóựn Vn Nguyón- Khoa CNTT-TVT aỷi hoỹc Baùch Khoa aỡ Nụng Baỡi tỏỷp Tin hoỹc aỷi cổồng 127 11. Tỗm hióứu cuù phaùp vaỡ chổùc nng cuớa haỡm strrev Khai baùo s); ợ c. Vờ duỷ: #include <string.h> #include <stdio.h> #include <conio.h> int main(void) { clrscr(); char *forward = "Hello Everybody"; printf(" Chuoi truoc khi dao: %s\n", forward); strrev(forward); printf("Chuoi sau khi dao: %s\n", forward); getch(); } 12. Tỗm hióứu cuù phaùp vaỡ chổùc nng cuớa haỡm strstr a.Khai baùo char *strstr(const char *s1, const char *s2); b.Cọng duỷng: Tỗm lỏửn xuỏỳt hióỷn õỏửu tión cuớa xỏu con s2 trong xỏu s1 c. Vờ duỷ: #include <stdio.h> #include <conio.h> #include <string.h> int main(void) { clrscr(); char *str1 = "Borland International", *str2 = "nation", *ptr; ptr = strstr(str1, str2); printf("The substring is: %s\n", ptr); getch(); } a. char *strrev(char * b.Cọng duỷng: aớo mọỹt xỏu chổ Nguyóựn Vn Nguyón- Khoa CNTT-TVT aỷi hoỹc Baùch Khoa aỡ Nụng Baỡi tỏỷp Tin hoỹc aỷi cổồng 128 13. Vióỳt chổồng trỗnh nhỏỷp tón baỷn tổỡ baỡn phờm, chổồng trỗnh vióỳt traớ lồỡi chaỡo ban tón õổồỹc nhỏỷp tổỡ baỡn phờm. * Chổồng trỗnh #include <stdio.h> #include <conio.h> #include <string.h> void main() { char name[80]; clrscr(); printf("\nXin cho biet ten cua ban : "); gets(name); printf("Chao %s\n", name); getch(); } 14. Vióỳt chổồng trỗnh õaớo ngổồỹc xỏu chổợ (khọng duỡng haỡm strrev): Vờ duỷ : Nguyen Van Nguyen Xỏu õaớo laỷi: Neyugn nav Neyugn Hoỷc 123 -> 321 * Chổồng trỗnh # include <conio.h> #include <stdio.h> #include <string.h> #include <alloc.h> #include <stdlib.h> char * Daonguoc(char *s) { char *tam, i; i = 0; tam = (char *)malloc(strlen(s)+1); while (i<strlen(s)) *(tam+i) = *(s + strlen(s) - i++ - 1); *(tam+i) = 0; return tam; } void main() { Nguyóựn Vn Nguyón- Khoa CNTT-TVT aỷi hoỹc Baùch Khoa aỡ Nụng Baỡi tỏỷp Tin hoỹc aỷi cổồng 129 char *s1; char *s; clrscr(); printf("\nChuoi ban dau = "); gets(s1); s = Daonguoc(s1); printf("\nChuoi dao nguoc = %s", s); getch(); } 14. Vióỳt chổồng trỗnh õọứi ngổồỹc xỏu chổợ: Nóỳu ta nhỏỷp tổỡ baỡn phờm xỏu chổợ thổồỡng thỗ chổồng trỗnh õọứi ra xỏu chổợ in hoa vaỡ ngổồỹc laỷi (khọng duỡng haỡm strlwr, strupr) * Chổồng trỗnh #include <stdio.h> #include <ctype.h> #include <conio.h> void main() { char s[100]; int i; clrscr(); printf("\nNhap vao mot chuoi : "); gets(s); i = 0; while (s[i] != 0) { if (isalpha(s[i])) if (s[i] < 97) s[i] += 32; else s[i] -= 32; i++; } printf("\nChuoi bien thanh : %s", s); getch(); } 15. Vióỳt chổồng trỗnh nhỏỷp vaỡo xỏu chổợ s vaỡ thọng baùo : sọỳ tổỡ trong xỏu chổợ s Caùc kyù tổỷ khaùc nhau cuớa s vaỡ tỏửn sọỳ xuỏỳt hióỷn mọựi kyù tổỷ khọng phỏn bióỷt chổợ hoa hay thổồỡng. Kióứm tra s coù phaới laỡ xỏu chổợ Palindrome khọng? Nguyóựn Vn Nguyón- Khoa CNTT-TVT aỷi hoỹc Baùch Khoa aỡ Nụng Baỡi tỏỷp Tin hoỹc aỷi cổồng 130 Vờ duỷ chuọứi Palin drome (Lewd I did live, evil did I dwel ) * Chổồng trỗnh #include <string.h> #include <stdio.h> #include <conio.h> #include <ctype.h> /* */ int number_word(char *s) { int i=0, dem=0,L; L=strlen(s); while(i<L){ if(!isalpha(s[i])) do {i++;} while(s[i]==' '); else { dem++; do {i++;} while(s[i]!=' '); } } return dem; } /* */ void tanso(char s[30]) { char temp[30],c[2]; int i=0,j=0, d; c[1]='\0'; temp[0]='\0'; while(i<=strlen(s)){ while(isspace(s[i]))i++; if(strchr(temp,s[i])==NULL) { c[0]=s[i]; strcat(temp,c);} i++; } printf("\n Trong xau co cac ky tu: %s",temp); while(j<strlen(temp)) { Nguyóựn Vn Nguyón- Khoa CNTT-TVT aỷi hoỹc Baùch Khoa aỡ Nụng Baìi táûp Tin hoüc Âaûi cæång 131 d=0; for(i=0;i<=strlen(s);i++) if(temp[j]==s[i]) d++; printf("\n Ki tu %c xuat hien %i lan",temp[j],d); ++j; } } /* */ void palindrome(char s[256]) { int i=0,kt=1,n, L=strlen(s); char temp[200],c[2]; c[1]='\0'; strcpy(temp," "); while (i<L){ while(isspace(s[i]))i++; c[0]=s[i]; strcat(temp,c); i++; } i=1;n=strlen(temp); while (i<=n/2){ if (temp[i]!=temp[n-i]){ printf("\n Khong phai la chuoi palindrome"); kt=0; break; } else i++; } if (kt) printf("\n La chuoi palindrome"); } /* */ void main() { char s[256],*s1; while(1) { clrscr(); printf("\nNhap vao xau ky tu:"); fflush(stdin); gets(s); clrscr(); printf("\Xau ky tu %s",s); Nguyãùn Vàn Nguyãn- Khoa CNTT-ÂTVT Âaûi hoüc Baïch Khoa Âaì Nàông [...]... cac khong trong */ /* -* / char *khoangtrong(char *st) { char *vt; while (vt = strstr(st, " ")) // 2 khoang trong memmove(vt, vt+1, strlen(st) - (vt - st)); /* -* / /* vt la vi tri */ if (st[0] == ' ') memmove(st, st+1, strlen(st) - 1); if (st[strlen(st )-1 ] == ' ') st[strlen(st )-1 ] = 0; return st; } /* -* / void main() { char st[255]; clrscr();... clrscr(); printf("\nNhap cau tho co nhieu khoang trong : "); gets(st); khoangtrong(st); printf("\nChuoi sau khi xoa cac khoang trong : "); puts(st); Nguyóựn Vn Nguyón- Khoa CNTT-TVT aỷi hoỹc Baùch Khoa aỡ Nụng Baỡi tỏỷp Tin hoỹc aỷi cổồng getch(); } 17 Vi ỳt chổồng trỗnh nhỏỷp vaỡo xỏu kyù tổỷ.sau õoù cho xỏu naỡy chaỷy trón maỡn hỗnh tổỡ phaới qua traùi * Chổồng trỗnh #include #include ... vao xau chu can chay "); gets(st); length = strlen(st); while (!kbhit()) { movetext(2, 1, 80, 1, 1, 1); gotoxy(80, 1); cprintf("%c", st[i++]); delay(100); i %= length; } getch(); } Nguyóựn Vn Nguyón- Khoa CNTT-TVT aỷi hoỹc Baùch Khoa aỡ Nụng 133 ...Baỡi tỏỷp Tin hoỹc aỷi cổồng 132 printf("\n Co %d tu trong xau ky ",number_word(s)); tanso(s); palindrome(s); printf("\n Press q or Q to exit"); if(!kbhit()) if (toupper(getch())=='Q') break; } } 16 Nhỏỷp 1 xỏu . vt+1, strlen(st) - (vt - st)); /* */ /* vt la vi tri */ if (st[0] == ' ') memmove(st, st+1, strlen(st) - 1); if (st[strlen(st )-1 ] == ' ') st[strlen(st )-1 ] = 0; return. *(tam+i) = *(s + strlen(s) - i++ - 1); *(tam+i) = 0; return tam; } void main() { Nguyóựn Vn Nguyón- Khoa CNTT-TVT aỷi hoỹc Baùch Khoa aỡ Nụng Baỡi tỏỷp Tin hoỹc aỷi cổồng 129 char. xỏu chổ Nguyóựn Vn Nguyón- Khoa CNTT-TVT aỷi hoỹc Baùch Khoa aỡ Nụng Baỡi tỏỷp Tin hoỹc aỷi cổồng 128 13. Vi ỳt chổồng trỗnh nhỏỷp tón baỷn tổỡ baỡn phờm, chổồng trỗnh vi ỳt traớ lồỡi chaỡo ban