Với đề sau:Viết chương trình kiểm tra ‘‘hello’’ có trong xâu s hay không*?(không phân biệt chữ hoa và chữ thường)
Vấn đề cần quan tâm ở đây là tìm kiếm chuỗi trong chuỗi.
Thuật toán dưới đây sẽ duyệt chuỗi, gặp chữ 'h' hoặc 'H' sẽ copy 5 ký tự tiếp theo vào mảng tạm , sau đó so sánh với "hello".
Vấn đề thứ 2 là không phân biệt hoa thường. ở đây dùng strupr(); --> chuyển về viết hoa để so sánh.
Thuật toán mới chỉ giải quyết được vấn đề, song vẫn chưa tối ưu lắm.Code:#include<iostream> #include<string.h> #include<cstdio> using namespace std; main() { char a[50],b[6],d[6]="HELLO"; cout<<"\nNhap chuoi: "; gets(a); int slen=strlen(a); for(int i=0;i<slen-4;i++) { if(a[i]=='h'||a[i]=='H') { int k=i; for(int j=0;j<5;j++) { b[j]=a[k]; k++; } } if(strcmp(b,d)==0) break; } strupr(b); if(strcmp(b,d)==0) cout<<"\nCo"; else cout<<"\nKhong"; }
--> cần một thuật toán tối ưu hơn ?--------------------------------------------------
Xem các chủ đề cùng chuyên mục:
- thuật toán nè mấy sư huynh 22/05/2009
- copy n ki tu chuoi s tu vi tri thu m sang chuoi p(m,n khoi tao = 0) 14/05/2009
- Kiểm tra 1 số có thuộc dãy Fibonacci hay không? 09/05/2009
- Thông báo giùm diễn đàn 21/05/2009
- tính tổng ma trận đê!!! 10/05/2009
- Đếm số lần ký tự xuất hiện 19/07/2009
- Bài Tập Hàm-Tổ hợp 21/05/2009
- Code desktop nào 27/09/2011
- Một ví dụ đơn giản về Java DOM XML 11/01/2011
- ".:'Đôi Vị Trí Trong Ma Trận':." 26/05/2009
+1 EXP







Trả Lời Với Trích Dẫn
BigZero
hongoctrien