SlideShare a Scribd company logo
Một số bài tập về chuỗi kí tự trong C++
CÁCH GIẢI MỘT SỐ BÀI TẬP
VỀ KIỂU CHUỖI
1. Đếm có bao nhiêu khoảng trắng trong chuỗi.
2. Nhập vào một chuỗi, hãy loại bỏ những khoảng trắng thừa trong chuỗi.
3. Nhập vào hai chuỗi s1 và s2, nối chuỗi s2 vào s1. Xuất chuỗi s1 ra màn hình
4. Đổi tất cả các kí tự có trong chuỗi thành chữ thường (không dùng hàm
strlwr).
5. Đổi tất cả các kí tự trong chuỗi sang chữ in hoa (không dùng hàm struppr).
6. Viết chương trình đổi những kí tự đầu tiên của mỗi từ thành chữ in hoa.
7. Viết chương trình đổi chữ xen kẻ 1 chữ hoa và 1 chữ thường.
Ví dụ: nhập ABCDEfgh đổi thành AbCdEfGh
8. Viết chương trình đảo ngược các kí tự trong chuỗi.
Ví dụ: nhập ABCDE, xuất ra màn hình là:EDCBA
9. Viết chương trình tìm kiếm 1 kí tự xem có trong chuỗi không, nếu có xuất ra
vị trí của từ chứ kí tự đó. (Vd: xâu a là “ho chi minh”: nhập ‘m’=>kết quả
là 3)
10. Viết 1 chương trình đếm một kư tự xuất hiện bao nhiêu lần trong
chuỗi.(vd:xâu a nhập là “ho chi minh”, nhập ‘i’ =>kq: 2)
11. Nhập vào chuỗi s1 và s2, cho biết vị trí xuất hiện của chuỗi s2 trong s1.
12. Viết chương trình tìm kiếm tên trong chuỗi họ tên. Nếu có thì xuất ra là tên
này đă nhập
đúng, ngược lại thông báo là đă nhập sai.
13. Viết chương đảo vị trí của từ đầu và từ cuối.
Ví dụ: nhập “bo an co” xuat ra “co an bo”
14. Viết hàm cắt chuỗi họ tên thành chuỗi họ lót và chuỗi tên.
Ví dụ: chuỗi họ tên là:”Nguyễn Văn A” cắt ra 2 chuỗi là chuỗi họ
lót:”NguyễnVăn”,chuỗi tên là:”A”
Trương Văn Việt C10CT10 Page 1
Một số bài tập về chuỗi kí tự trong C++
15. Nhập một chuỗi bất kỳ, sau đó hỏi người dùng cần tách bắt đầu từ đâu trong
chuỗi trở về sau.
Ví dụ: Nhập chuỗi S1:”Trường Đại Học Tôn Đức Thắng”. Người nhập muốn
tách bắt đầu từ chữ “Tôn” thì sẽ xuất ra chuỗi “Tôn Đức Thắng” ra màn hình
16. Viết hàm kiểm tra xem chuỗi có đối xứng hay không?.
17. Viết hàm tra xem trong chuỗi có kí tự số hay không nếu có tách ra thành
một mảng số riêng.
18. Nhập một chuỗi bất kì, yêu cầu nhập 1 kí tự muốn xóa. Thực hiện xóa tất cả
những kí tự đó trong chuỗi.
19. Đổi các từ ở đầu câu sang chữ hoa và những từ không phải đầu câu sang chữ
thường.
Ví dụ: nGuYen vAN a đổi thành: Nguyen Van A
20. Viết chương trình đảo ngược thứ tự các từ có trong chuỗi
Ví dụ: Nhập: lap trinh bang ngon ngu c
Xuất ra màn hình là: c ngu ngon bang trinh lap
21. Cho chuỗi str, nhập vào vị trí vt và số kí tự cần xóa n, hăy xóa n kí tự tính từ
vị trí vt trong chuỗi str.
22. Nhập vào chuỗi str, chuỗi cần chèn strInsert và vị trí cần chèn vt. Hăy chèn
chuỗi strInser vào chuỗi str tại vị trí vt.
23. Cho một xâu, nhập vào một từ ,viết chương trình, xoá từ đó trong xâu đã
cho.
24. Viết chương trình tìm kiếm xem ký tự nào xuất nhiện nhiều nhất trong
chuỗi.
25. Nhập 1 chuỗi bất kì, liệt kê xem mỗi ký tự xuất hiện mấy lần.
1
int demkhoangtrang(char *s)
{
int d=0;
while(strstr(s," ")!=NULL)
{
Trương Văn Việt C10CT10 Page 2
Một số bài tập về chuỗi kí tự trong C++
d++;
s=strstr(s," ")+1;
}
return d;
}
//lam theo ham de quy
// s=strstr(s," ");
//if(s==NULL)
//return 0;
//else return 1+demkhoangtrang(s+1);
2
void xoakhoangtrang(char *s)
{
char *c=strstr(s," ");
while(c!=NULL)
{
int t=strlen(s)-strlen(c);
for(int i=t;i<strlen(s);i++)
s[i]=s[i+1];
c=strstr(s," ");
}
if(s[0]==' ')
s=s+1; //xoa khang trang dau chuoi
int n=strlen(s);
if(s[n-1]==' ')
s[n-1]='0';//xoa khoang trang cuoi chuoi
cout<<s; //for(int i=0;i<n;i++)
//cout<<s[i];
}
3
void noichuoi(char *a,char *b)
{
strcat(a,b);
puts(a);
}
4
Trương Văn Việt C10CT10 Page 3
Một số bài tập về chuỗi kí tự trong C++
void chuthuong(char *a)
{
for(int i=0;i<strlen(a);i++)
if(a[i]>=65 && a[i]<=90)
a[i]=a[i]+32;
puts(a);
}
5
void chuhoa(char *a)
{
for(int i=0;i<strlen(a);i++)
a[i]=toupper(a[i]); //if(a[i]>=97 && a[i]<=122)
puts(a); //a[i]=a[i]-32;
}
6
void chuhoadau(char *s)
{
s[0]=toupper(s[0]);
while(strstr(s," ")!=NULL)
{
s=strstr(s," ")+1;
s[0]=toupper(s[0]);
}
}
7
void chuxenke(char *a)
{
int n=strlen(a);
for(int i=0;i<n;i++)
{
if(i%2==0)
if((int)a[i]>=97 && (int)a[i]<=122)
a[i]=char((int)a[i]-32);
if(i%2==1)
if((int)a[i]>=65 && (int)a[i]<=90)
a[i]=char((int)a[i]+32);
}
Trương Văn Việt C10CT10 Page 4
Một số bài tập về chuỗi kí tự trong C++
puts(a);
}
8
void daochuoi(char *s)
{
puts(strrev(s));
}
9
int vitri(char *a,char *b)
{
int kq,d=0;
if(strstr(a,b)!=NULL)
{
kq=strlen(a)-strlen(strstr(a,b));
for(int i=kq;i>=0;i--)
if(a[i]==' ')
d++;
return d+1;
}
else return -1;
}
10
int diemtu(char *a,char *b)
{
int d=0;
while(strstr(a,b)!=NULL)
{
d++;
a=strstr(a,b)+1;
}
return d;
}
11
int vitri(char *a,char *b)
Trương Văn Việt C10CT10 Page 5
Một số bài tập về chuỗi kí tự trong C++
{
int d=-1;
if(strstr(a,b)!=NULL)
d=strlen(a)-strlen(strstr(a,b));
return d;
}
12
void timten(char *a,char *b)
{
int n=strlen(a);
char *s;
for(int i=n-1;i>=0;i--)
if(a[i]==' ')
{
s=a+i+1;
break;
}
if(strcmpi(s,b)==0)// strcmp==stricmp
cout<<s;
else
cout<<"ban nhap sai tenn";
}
13
void daochuoi(char *s)
{
char t[50],r[50];
int i,l;
for(i=strlen(s)-1;i>=0;i--)
if(s[i]==' ')
break;
strcpy(r,s+i+1);//tim dctu cuoi
s[i+1]='0';//xau s sau khi bo tu cuoi,co khoang trang
o cuoi xau
l=strlen(s)-strlen(strstr(s," ")); //tim vi tri khoang
trang dau tien trong chuoi
strcpy(t,s+l+1);//l la xau chau cac tu chinh giua
s[l]='0'; //hien tai la xau chua tu dautien
strcat(strcat(strcat(r," "),t),s);//noi cac xau lai
voi nhau*/
Trương Văn Việt C10CT10 Page 6
Một số bài tập về chuỗi kí tự trong C++
puts(r);
}
14
void cathoten(char *s)
{
char *t;
int i;
for(i=strlen(s)-1;i>=0;i--)
if(s[i]==' '&&s[i+1]!=' ')
break;
t=s+i+1;
s[i]='0';
cout<<"ho lot: ";
puts(s);
cout<<"ho ten: ";
puts(t);
}
15
void timtu(char *a,char *b)
{
char *t=strstr(a,b);//vi tri xuat hien b dau tien
trong chuoi a
puts(t);
}
16
bool ktdoixung(char *s)
{
char c[255];
strcpy(c,s);
if(strcmpi(s,strrev(c))==0)
return true;
else return false;
}
17
Trương Văn Việt C10CT10 Page 7
Một số bài tập về chuỗi kí tự trong C++
void tachso(char *s)
{
int a[100],j=0;
for(int i=0;i<strlen(s);i++)
if(s[i]>='0' && s[i]<='9')
{ a[j]=s[i];//ki tu kieu char chuyen thanh kieu
int(vd:1=>49)
j++;
for(int t=i;t<strlen(s);t++)
s[t]=s[t+1];
i--;
}
puts(s);
for(int i=0;i<j;i++)
cout<<char(a[i])<<" ";
}
18
void xoakitu(char *a,char b)
{
int n=strlen(a);
for(int i=0;i<n;i++)
if(a[i]==b)
{
for(int j=i;j<n;j++)
a[j]=a[j+1];
i--;
n--;
}
cout<<a;
}
19
void chuhoa(char *s)
{
s[0]=toupper(s[0]);
for(int i=1;i<strlen(s);i++) //chua tim dc cach nao toi
uu hon
if(s[i]==' ')
Trương Văn Việt C10CT10 Page 8
Một số bài tập về chuỗi kí tự trong C++
{
s[i+1]=toupper(s[i+1]);
i++;
}
else
{
if(s[i]>='A' && s[i]<='Z')
s[i]=s[i]+32;
}
puts(s);
}
20
void daothutu(char *s)
{
char c[255];
c[0]='0';//ham strcat noi chuoi tai vi tri NULL
for(int i=strlen(s)-1;i>=0;i--)
if(s[i]==' ')
{
strcat(strcat(c,s+i+1)," ");
s[i]='0';
}
strcat(c,s);
puts(c);
}
21
void xoa(char *s,int vt,int n)
{
strcpy(s+vt,s+vt+n);
puts(s);
}
22
void chen(char *s,char *d,int vt)
{
char c[255];
Trương Văn Việt C10CT10 Page 9
Một số bài tập về chuỗi kí tự trong C++
strcpy(c,s+vt);
strcpy(s+vt,d);
strcat(s,c);
puts(s);
}
23
void xoatu(char *s,char *c)
{
while(strstr(s,c)!=NULL)
{
int t=strlen(s)-strlen(strstr(s,c)),d=strlen(c);
if((s[t-1]==' '&& s[t+d]==' ')||(s[t-1]
==' '&& t+d==strlen(s)))//truong hop tu giua va
tu cuoi
strcpy(s+t-1,s+t+d);// s+t-1 la khoang trang
if(s[t+d]==' '&& t==0)//truong hop xoa tu dau tien
strcpy(s,s+t+d+1);
}
puts(s);
}
24
void kituxuathiennhieunhat(char *s)
{
int a[100],n=0;
for(int i=0;i<(int)strlen(s);i++)
{
int d=1;
for(int j=i+1;j<(int)strlen(s);j++)
if(s[i]==s[j])
{ d++;
for(int k=j;k<(int)strlen(s);k++)
s[k]=s[k+1];
j--;
}
a[n++]=d;
}
int max=a[0];
for(int i=1;i<(int)strlen(s);i++)
if(a[i]>max)
Trương Văn Việt C10CT10 Page 10
Một số bài tập về chuỗi kí tự trong C++
max=a[i];
for(int i=1;i<(int)strlen(s);i++)
if(a[i]==max)
cout<<"ki tu "<<s[i]<<" xuat hien nhieu nhat
la "<<a[i]<<" lann";
}
25
void demkitu(char *s)
{
int a[100],n=0;
for(int i=0;i<(int)strlen(s);i++)
{
int d=1;
for(int j=i+1;j<(int)strlen(s);j++)
if(s[i]==s[j])
{ d++;
for(int k=j;k<(int)strlen(s);k++)
s[k]=s[k+1];
j--;
}
a[n++]=d;
}
for(int i=0;i<(int)strlen(s);i++)
cout<<"ki tu "<<s[i]<<" xuat hien "<<a[i]<<" lann";
}
Trương Văn Việt C10CT10 Page 11

More Related Content

PDF
Tieu Luan - Mang may tinh voi Packet tracer
PDF
Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm
PDF
Bao cao thuc tap
PDF
Đề tài: Thiết kế, lập trình nhà giữ xe tự động sử dụng PLC, HAY
DOC
Hệ thống phân loại cà chua theo màu sắc sử dụng PLC S7 - 1200.doc
DOCX
Tổng Hợp 200 Đề Tài Báo Cáo Thực Tập Ngành Điện, 9 Điểm, Từ Các Trường Đại Học
PDF
Đề tài: Mô hình chăm sóc heo tự động có điều khiển và giám sát
PDF
Hệ thống hãm máy phát của xe điện truyền động bằng BLDC
Tieu Luan - Mang may tinh voi Packet tracer
Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm
Bao cao thuc tap
Đề tài: Thiết kế, lập trình nhà giữ xe tự động sử dụng PLC, HAY
Hệ thống phân loại cà chua theo màu sắc sử dụng PLC S7 - 1200.doc
Tổng Hợp 200 Đề Tài Báo Cáo Thực Tập Ngành Điện, 9 Điểm, Từ Các Trường Đại Học
Đề tài: Mô hình chăm sóc heo tự động có điều khiển và giám sát
Hệ thống hãm máy phát của xe điện truyền động bằng BLDC

What's hot (20)

PDF
đáNh giá hiện trạng môi trường đất, nước và đề xuất biện pháp giảm thiểu tại ...
DOCX
MÔ PHỎNG ĐIỀU KHIỂN VÀ ĐÁNH GIÁ HỆ THỐNG BỒN NƯỚC ĐƠN.docx
DOCX
Tổng Hợp Đề Tài Khóa Luận Tốt Nghiệp An Toàn Thông Tin, Dễ Làm Điểm Cao
PDF
Đề tài: Thiết kế hệ thống cân định lượng và đóng bao tự động, HOT
PDF
Bộ điều khiển giám sát DC Link trong hệ thống điện mặt trời, HAY
DOC
Đồ án tốt nghiệp - Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm.doc
DOC
Báo cáo thực tập - LẮP RÁP, CÀI ĐẶT, SỬA CHỮA MÁY TÍNH !!
DOC
Xây Dựng Hệ Thống Mạng Máy Tính Cho Doanh Nghiệp Vừa & Nhỏ.doc
DOC
Đề tài: Hệ thống giám sát quá trình chiết rót và đóng nắp chai tự động
DOC
Bao cao da lap trinh manh
PDF
Bài giảng tự động hóa quá trình công nghệ
DOCX
List 200 Đề Tài Báo Cáo Thực Tập Ngành Điện Công Nghiệp, Từ Các Trường Đại Học
PDF
Nghiên cứu, thiết kế và chế tạo xe hỗ trợ vận chuyển hàng hóa thông minh.pdf
DOCX
Đồ Án Tốt Nghiệp Ngành Công Nghệ Thông Tin, 9 Điểm.docx
DOC
Đồ án tốt nghiệp cơ điện tử Hệ Thống Tưới Cây Tự Động theo độ ẩm.doc
PDF
Đề tài: Hệ thống định mức và chiết rót chai tự động, HAY, 9đ
PDF
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
PDF
Đề tài: Triển khai giải pháp giả lập thiết bị mạng với Unetlab-EVE
PDF
Đề tài: Mô hình giám sát và điều khiển mô hình trồng nấm rơm
PDF
Đề tài: Điều khiển thiết bị bằng giọng nói qua Google Asstiant, 9đ
đáNh giá hiện trạng môi trường đất, nước và đề xuất biện pháp giảm thiểu tại ...
MÔ PHỎNG ĐIỀU KHIỂN VÀ ĐÁNH GIÁ HỆ THỐNG BỒN NƯỚC ĐƠN.docx
Tổng Hợp Đề Tài Khóa Luận Tốt Nghiệp An Toàn Thông Tin, Dễ Làm Điểm Cao
Đề tài: Thiết kế hệ thống cân định lượng và đóng bao tự động, HOT
Bộ điều khiển giám sát DC Link trong hệ thống điện mặt trời, HAY
Đồ án tốt nghiệp - Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm.doc
Báo cáo thực tập - LẮP RÁP, CÀI ĐẶT, SỬA CHỮA MÁY TÍNH !!
Xây Dựng Hệ Thống Mạng Máy Tính Cho Doanh Nghiệp Vừa & Nhỏ.doc
Đề tài: Hệ thống giám sát quá trình chiết rót và đóng nắp chai tự động
Bao cao da lap trinh manh
Bài giảng tự động hóa quá trình công nghệ
List 200 Đề Tài Báo Cáo Thực Tập Ngành Điện Công Nghiệp, Từ Các Trường Đại Học
Nghiên cứu, thiết kế và chế tạo xe hỗ trợ vận chuyển hàng hóa thông minh.pdf
Đồ Án Tốt Nghiệp Ngành Công Nghệ Thông Tin, 9 Điểm.docx
Đồ án tốt nghiệp cơ điện tử Hệ Thống Tưới Cây Tự Động theo độ ẩm.doc
Đề tài: Hệ thống định mức và chiết rót chai tự động, HAY, 9đ
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
Đề tài: Triển khai giải pháp giả lập thiết bị mạng với Unetlab-EVE
Đề tài: Mô hình giám sát và điều khiển mô hình trồng nấm rơm
Đề tài: Điều khiển thiết bị bằng giọng nói qua Google Asstiant, 9đ
Ad

Viewers also liked (16)

PDF
Presentation mentori
PDF
Bab 12 keamanan komputer
PPT
Round 3 - S5PDH1 World Cup Stock Market
PPTX
[PL] Mechanizmy bezpieczeństwa w sieciach z rodziny 802.11x
PPTX
Biotecnología
DOCX
Philosophy of education
PPTX
New missions for HR - Internal control 2010 ch 9
PPTX
Analysis of two indie dps
PDF
Meeting Today's Challenges
PPTX
Cyber crime
PPTX
Jeg liker så godt følelsen av papir
DOCX
Plan de area grandes triunfadores
PPT
PDF
6418 (1)
PPTX
otonomi daerah
PDF
Ryther Insider
Presentation mentori
Bab 12 keamanan komputer
Round 3 - S5PDH1 World Cup Stock Market
[PL] Mechanizmy bezpieczeństwa w sieciach z rodziny 802.11x
Biotecnología
Philosophy of education
New missions for HR - Internal control 2010 ch 9
Analysis of two indie dps
Meeting Today's Challenges
Cyber crime
Jeg liker så godt følelsen av papir
Plan de area grandes triunfadores
6418 (1)
otonomi daerah
Ryther Insider
Ad

Similar to Hướng dẫn làm bt về chuỗi.doc (20)

DOCX
Hướng dẫn làm bt về chuỗi.doc
PDF
Phan 2 chuong 8 (chuoi ky tu)
PDF
String c++
PDF
Stl string
PPT
Phan2 chuong8 chuoikitu
PPTX
Chuong 2 - Cac cau truc du lieu co ban.pptx
PDF
Bài tập xâu cơ bản-nâng cao
PDF
Demsoktsohoathuong
PDF
Nmlt c09 chuoi_kytu_in
PPT
Nmlt c09 chuoi_kytu
PPTX
Chuoi-Ky-Tu-trong-Ngon-Ngu-Lap-Trinh-C (1).pptx
DOC
Bài tập về chuẩn hóa chuỗ1
PPT
Nmlt C09 Chuoi Ky Tu
PDF
Phần 9: Chuỗi ký tự
PDF
chuỗi ký tự c++
DOC
H hai epc_baitap
DOCX
Bai tap c.doc (đã phục hồi)
DOC
Dehopngu
PDF
Thu vien lap trinh c++
PDF
Cac ham trong thu vien cua c&c++
Hướng dẫn làm bt về chuỗi.doc
Phan 2 chuong 8 (chuoi ky tu)
String c++
Stl string
Phan2 chuong8 chuoikitu
Chuong 2 - Cac cau truc du lieu co ban.pptx
Bài tập xâu cơ bản-nâng cao
Demsoktsohoathuong
Nmlt c09 chuoi_kytu_in
Nmlt c09 chuoi_kytu
Chuoi-Ky-Tu-trong-Ngon-Ngu-Lap-Trinh-C (1).pptx
Bài tập về chuẩn hóa chuỗ1
Nmlt C09 Chuoi Ky Tu
Phần 9: Chuỗi ký tự
chuỗi ký tự c++
H hai epc_baitap
Bai tap c.doc (đã phục hồi)
Dehopngu
Thu vien lap trinh c++
Cac ham trong thu vien cua c&c++

Recently uploaded (20)

PPTX
CHƯƠNG I excel,,,,,,,,,,,,,,,,,,,,,,,,,,
DOCX
Set menu 3 món rất hay và hiện đại dành cho người
PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
PPT
SINH 8 TUYẾN YÊN TUYẾN GIÁP CÂU TẠO VÀ CHỨC NĂNG
PDF
bo-trac-nghiem-toan-11 dành cho cả năm học
DOCX
Ôn tập văn học phương đông thi giữa kì ..
PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PPTX
Flashcard giải pháp đơn giản – trực quan – hiệu quả, giúp học từ vựng theo t...
PPTX
24. 9cqbq2reu57m5igbsz-signature-40d40b8bd600bcde0d0584523c684ec4933c280de74a...
PDF
BỘ TÀI LIỆU CHINH PHỤC ĐỈNH CAO TIẾNG ANH NĂM 2026 CHUYÊN ĐỀ ÔN HỌC SINH GIỎI...
PDF
Dao tao va Phat trien NỘI DUNG ÔN THI CHO SINH VIÊN
PPTX
2. tràn khí màng phổi bệnh học nộii.pptx
PPTX
Bài 9.4 TUYẾN SINH DỤC NAM VÀ NU CẤU TẠO VÀ CHỨC NĂNG
DOCX
Cao Thuy Linh-San pham cuoi khoa.- bồi dưỡng thường xuyêndocx
PDF
Public economy và vai trò trong phân bổ nguồn lực, cung cấp hàng hóa công, đi...
DOCX
6.CQ_KT_Ke toan tai chinh 2_Pham Thi Phuong Thao.docx
PPTX
TIẾT 8, 9, 10. BÀI 32. DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
PPTX
Bài 6 Du an bua an ket noi yeu thuong.pptx
PPTX
Bai 44 Thuyet dong hoc phan tu chat khi Cau tao chat .pptx
CHƯƠNG I excel,,,,,,,,,,,,,,,,,,,,,,,,,,
Set menu 3 món rất hay và hiện đại dành cho người
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
SINH 8 TUYẾN YÊN TUYẾN GIÁP CÂU TẠO VÀ CHỨC NĂNG
bo-trac-nghiem-toan-11 dành cho cả năm học
Ôn tập văn học phương đông thi giữa kì ..
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
Flashcard giải pháp đơn giản – trực quan – hiệu quả, giúp học từ vựng theo t...
24. 9cqbq2reu57m5igbsz-signature-40d40b8bd600bcde0d0584523c684ec4933c280de74a...
BỘ TÀI LIỆU CHINH PHỤC ĐỈNH CAO TIẾNG ANH NĂM 2026 CHUYÊN ĐỀ ÔN HỌC SINH GIỎI...
Dao tao va Phat trien NỘI DUNG ÔN THI CHO SINH VIÊN
2. tràn khí màng phổi bệnh học nộii.pptx
Bài 9.4 TUYẾN SINH DỤC NAM VÀ NU CẤU TẠO VÀ CHỨC NĂNG
Cao Thuy Linh-San pham cuoi khoa.- bồi dưỡng thường xuyêndocx
Public economy và vai trò trong phân bổ nguồn lực, cung cấp hàng hóa công, đi...
6.CQ_KT_Ke toan tai chinh 2_Pham Thi Phuong Thao.docx
TIẾT 8, 9, 10. BÀI 32. DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
Bài 6 Du an bua an ket noi yeu thuong.pptx
Bai 44 Thuyet dong hoc phan tu chat khi Cau tao chat .pptx

Hướng dẫn làm bt về chuỗi.doc

  • 1. Một số bài tập về chuỗi kí tự trong C++ CÁCH GIẢI MỘT SỐ BÀI TẬP VỀ KIỂU CHUỖI 1. Đếm có bao nhiêu khoảng trắng trong chuỗi. 2. Nhập vào một chuỗi, hãy loại bỏ những khoảng trắng thừa trong chuỗi. 3. Nhập vào hai chuỗi s1 và s2, nối chuỗi s2 vào s1. Xuất chuỗi s1 ra màn hình 4. Đổi tất cả các kí tự có trong chuỗi thành chữ thường (không dùng hàm strlwr). 5. Đổi tất cả các kí tự trong chuỗi sang chữ in hoa (không dùng hàm struppr). 6. Viết chương trình đổi những kí tự đầu tiên của mỗi từ thành chữ in hoa. 7. Viết chương trình đổi chữ xen kẻ 1 chữ hoa và 1 chữ thường. Ví dụ: nhập ABCDEfgh đổi thành AbCdEfGh 8. Viết chương trình đảo ngược các kí tự trong chuỗi. Ví dụ: nhập ABCDE, xuất ra màn hình là:EDCBA 9. Viết chương trình tìm kiếm 1 kí tự xem có trong chuỗi không, nếu có xuất ra vị trí của từ chứ kí tự đó. (Vd: xâu a là “ho chi minh”: nhập ‘m’=>kết quả là 3) 10. Viết 1 chương trình đếm một kư tự xuất hiện bao nhiêu lần trong chuỗi.(vd:xâu a nhập là “ho chi minh”, nhập ‘i’ =>kq: 2) 11. Nhập vào chuỗi s1 và s2, cho biết vị trí xuất hiện của chuỗi s2 trong s1. 12. Viết chương trình tìm kiếm tên trong chuỗi họ tên. Nếu có thì xuất ra là tên này đă nhập đúng, ngược lại thông báo là đă nhập sai. 13. Viết chương đảo vị trí của từ đầu và từ cuối. Ví dụ: nhập “bo an co” xuat ra “co an bo” 14. Viết hàm cắt chuỗi họ tên thành chuỗi họ lót và chuỗi tên. Ví dụ: chuỗi họ tên là:”Nguyễn Văn A” cắt ra 2 chuỗi là chuỗi họ lót:”NguyễnVăn”,chuỗi tên là:”A” Trương Văn Việt C10CT10 Page 1
  • 2. Một số bài tập về chuỗi kí tự trong C++ 15. Nhập một chuỗi bất kỳ, sau đó hỏi người dùng cần tách bắt đầu từ đâu trong chuỗi trở về sau. Ví dụ: Nhập chuỗi S1:”Trường Đại Học Tôn Đức Thắng”. Người nhập muốn tách bắt đầu từ chữ “Tôn” thì sẽ xuất ra chuỗi “Tôn Đức Thắng” ra màn hình 16. Viết hàm kiểm tra xem chuỗi có đối xứng hay không?. 17. Viết hàm tra xem trong chuỗi có kí tự số hay không nếu có tách ra thành một mảng số riêng. 18. Nhập một chuỗi bất kì, yêu cầu nhập 1 kí tự muốn xóa. Thực hiện xóa tất cả những kí tự đó trong chuỗi. 19. Đổi các từ ở đầu câu sang chữ hoa và những từ không phải đầu câu sang chữ thường. Ví dụ: nGuYen vAN a đổi thành: Nguyen Van A 20. Viết chương trình đảo ngược thứ tự các từ có trong chuỗi Ví dụ: Nhập: lap trinh bang ngon ngu c Xuất ra màn hình là: c ngu ngon bang trinh lap 21. Cho chuỗi str, nhập vào vị trí vt và số kí tự cần xóa n, hăy xóa n kí tự tính từ vị trí vt trong chuỗi str. 22. Nhập vào chuỗi str, chuỗi cần chèn strInsert và vị trí cần chèn vt. Hăy chèn chuỗi strInser vào chuỗi str tại vị trí vt. 23. Cho một xâu, nhập vào một từ ,viết chương trình, xoá từ đó trong xâu đã cho. 24. Viết chương trình tìm kiếm xem ký tự nào xuất nhiện nhiều nhất trong chuỗi. 25. Nhập 1 chuỗi bất kì, liệt kê xem mỗi ký tự xuất hiện mấy lần. 1 int demkhoangtrang(char *s) { int d=0; while(strstr(s," ")!=NULL) { Trương Văn Việt C10CT10 Page 2
  • 3. Một số bài tập về chuỗi kí tự trong C++ d++; s=strstr(s," ")+1; } return d; } //lam theo ham de quy // s=strstr(s," "); //if(s==NULL) //return 0; //else return 1+demkhoangtrang(s+1); 2 void xoakhoangtrang(char *s) { char *c=strstr(s," "); while(c!=NULL) { int t=strlen(s)-strlen(c); for(int i=t;i<strlen(s);i++) s[i]=s[i+1]; c=strstr(s," "); } if(s[0]==' ') s=s+1; //xoa khang trang dau chuoi int n=strlen(s); if(s[n-1]==' ') s[n-1]='0';//xoa khoang trang cuoi chuoi cout<<s; //for(int i=0;i<n;i++) //cout<<s[i]; } 3 void noichuoi(char *a,char *b) { strcat(a,b); puts(a); } 4 Trương Văn Việt C10CT10 Page 3
  • 4. Một số bài tập về chuỗi kí tự trong C++ void chuthuong(char *a) { for(int i=0;i<strlen(a);i++) if(a[i]>=65 && a[i]<=90) a[i]=a[i]+32; puts(a); } 5 void chuhoa(char *a) { for(int i=0;i<strlen(a);i++) a[i]=toupper(a[i]); //if(a[i]>=97 && a[i]<=122) puts(a); //a[i]=a[i]-32; } 6 void chuhoadau(char *s) { s[0]=toupper(s[0]); while(strstr(s," ")!=NULL) { s=strstr(s," ")+1; s[0]=toupper(s[0]); } } 7 void chuxenke(char *a) { int n=strlen(a); for(int i=0;i<n;i++) { if(i%2==0) if((int)a[i]>=97 && (int)a[i]<=122) a[i]=char((int)a[i]-32); if(i%2==1) if((int)a[i]>=65 && (int)a[i]<=90) a[i]=char((int)a[i]+32); } Trương Văn Việt C10CT10 Page 4
  • 5. Một số bài tập về chuỗi kí tự trong C++ puts(a); } 8 void daochuoi(char *s) { puts(strrev(s)); } 9 int vitri(char *a,char *b) { int kq,d=0; if(strstr(a,b)!=NULL) { kq=strlen(a)-strlen(strstr(a,b)); for(int i=kq;i>=0;i--) if(a[i]==' ') d++; return d+1; } else return -1; } 10 int diemtu(char *a,char *b) { int d=0; while(strstr(a,b)!=NULL) { d++; a=strstr(a,b)+1; } return d; } 11 int vitri(char *a,char *b) Trương Văn Việt C10CT10 Page 5
  • 6. Một số bài tập về chuỗi kí tự trong C++ { int d=-1; if(strstr(a,b)!=NULL) d=strlen(a)-strlen(strstr(a,b)); return d; } 12 void timten(char *a,char *b) { int n=strlen(a); char *s; for(int i=n-1;i>=0;i--) if(a[i]==' ') { s=a+i+1; break; } if(strcmpi(s,b)==0)// strcmp==stricmp cout<<s; else cout<<"ban nhap sai tenn"; } 13 void daochuoi(char *s) { char t[50],r[50]; int i,l; for(i=strlen(s)-1;i>=0;i--) if(s[i]==' ') break; strcpy(r,s+i+1);//tim dctu cuoi s[i+1]='0';//xau s sau khi bo tu cuoi,co khoang trang o cuoi xau l=strlen(s)-strlen(strstr(s," ")); //tim vi tri khoang trang dau tien trong chuoi strcpy(t,s+l+1);//l la xau chau cac tu chinh giua s[l]='0'; //hien tai la xau chua tu dautien strcat(strcat(strcat(r," "),t),s);//noi cac xau lai voi nhau*/ Trương Văn Việt C10CT10 Page 6
  • 7. Một số bài tập về chuỗi kí tự trong C++ puts(r); } 14 void cathoten(char *s) { char *t; int i; for(i=strlen(s)-1;i>=0;i--) if(s[i]==' '&&s[i+1]!=' ') break; t=s+i+1; s[i]='0'; cout<<"ho lot: "; puts(s); cout<<"ho ten: "; puts(t); } 15 void timtu(char *a,char *b) { char *t=strstr(a,b);//vi tri xuat hien b dau tien trong chuoi a puts(t); } 16 bool ktdoixung(char *s) { char c[255]; strcpy(c,s); if(strcmpi(s,strrev(c))==0) return true; else return false; } 17 Trương Văn Việt C10CT10 Page 7
  • 8. Một số bài tập về chuỗi kí tự trong C++ void tachso(char *s) { int a[100],j=0; for(int i=0;i<strlen(s);i++) if(s[i]>='0' && s[i]<='9') { a[j]=s[i];//ki tu kieu char chuyen thanh kieu int(vd:1=>49) j++; for(int t=i;t<strlen(s);t++) s[t]=s[t+1]; i--; } puts(s); for(int i=0;i<j;i++) cout<<char(a[i])<<" "; } 18 void xoakitu(char *a,char b) { int n=strlen(a); for(int i=0;i<n;i++) if(a[i]==b) { for(int j=i;j<n;j++) a[j]=a[j+1]; i--; n--; } cout<<a; } 19 void chuhoa(char *s) { s[0]=toupper(s[0]); for(int i=1;i<strlen(s);i++) //chua tim dc cach nao toi uu hon if(s[i]==' ') Trương Văn Việt C10CT10 Page 8
  • 9. Một số bài tập về chuỗi kí tự trong C++ { s[i+1]=toupper(s[i+1]); i++; } else { if(s[i]>='A' && s[i]<='Z') s[i]=s[i]+32; } puts(s); } 20 void daothutu(char *s) { char c[255]; c[0]='0';//ham strcat noi chuoi tai vi tri NULL for(int i=strlen(s)-1;i>=0;i--) if(s[i]==' ') { strcat(strcat(c,s+i+1)," "); s[i]='0'; } strcat(c,s); puts(c); } 21 void xoa(char *s,int vt,int n) { strcpy(s+vt,s+vt+n); puts(s); } 22 void chen(char *s,char *d,int vt) { char c[255]; Trương Văn Việt C10CT10 Page 9
  • 10. Một số bài tập về chuỗi kí tự trong C++ strcpy(c,s+vt); strcpy(s+vt,d); strcat(s,c); puts(s); } 23 void xoatu(char *s,char *c) { while(strstr(s,c)!=NULL) { int t=strlen(s)-strlen(strstr(s,c)),d=strlen(c); if((s[t-1]==' '&& s[t+d]==' ')||(s[t-1] ==' '&& t+d==strlen(s)))//truong hop tu giua va tu cuoi strcpy(s+t-1,s+t+d);// s+t-1 la khoang trang if(s[t+d]==' '&& t==0)//truong hop xoa tu dau tien strcpy(s,s+t+d+1); } puts(s); } 24 void kituxuathiennhieunhat(char *s) { int a[100],n=0; for(int i=0;i<(int)strlen(s);i++) { int d=1; for(int j=i+1;j<(int)strlen(s);j++) if(s[i]==s[j]) { d++; for(int k=j;k<(int)strlen(s);k++) s[k]=s[k+1]; j--; } a[n++]=d; } int max=a[0]; for(int i=1;i<(int)strlen(s);i++) if(a[i]>max) Trương Văn Việt C10CT10 Page 10
  • 11. Một số bài tập về chuỗi kí tự trong C++ max=a[i]; for(int i=1;i<(int)strlen(s);i++) if(a[i]==max) cout<<"ki tu "<<s[i]<<" xuat hien nhieu nhat la "<<a[i]<<" lann"; } 25 void demkitu(char *s) { int a[100],n=0; for(int i=0;i<(int)strlen(s);i++) { int d=1; for(int j=i+1;j<(int)strlen(s);j++) if(s[i]==s[j]) { d++; for(int k=j;k<(int)strlen(s);k++) s[k]=s[k+1]; j--; } a[n++]=d; } for(int i=0;i<(int)strlen(s);i++) cout<<"ki tu "<<s[i]<<" xuat hien "<<a[i]<<" lann"; } Trương Văn Việt C10CT10 Page 11