PDA

View Full Version : Xem giúp mình với



tuan_nguyen318
20-04-2009, 17:34
Xây dựng class mô tả chuỗi ký tự bao gồm các chức năng sau:
a) Xây dựng 02 hàm khởi tạo
b) Nhập dữ liệu cho chuỗi từ bàn phím
c) Xây dựng hàm đọc dữ liệu từ file ra chuỗi và ngược lại lưu chuỗi vào file.
d) Xây dựng hàm cộng hai chuỗi ký tự
e) Xây dựng hàm loại bỏ một chuỗi con chứa trong chuỗi ký tự của lớp
f) Xây dựng hàm đếm số từ có trong chuỗi
g) Xây dựng hàm đếm số lần xuất hiện của một kí tự bất kỳ.

Yêu cầu bài tập là như vậy. Mình viết code dưới đây lại ko chạy: Các bác kiểm tra giúp xem nó bị sao ạ? Thanks

#include<iostream.h>
#define n 100
#define m 50
#include<string.h>
#include<fstream.h>
/////////////////////////
class CBTL
{
char A[n];
char B[m];
public:
BTL(int);
BTL(float);

void nhap();
void docdulieu();
void congchuoi();
void loaichuoi();
int demtu();
int demkitu();
} xaukitu;
/////////////////////////
//ham khoi tao
CBTL::BTL(int a)
{
int nsize1;
cout<<"kich thuoc cua chuoi 1";
nsize1=a;
}
CBTL::BTL(float b)
{
float nsize2;
cout<<"kich thuoc cua chuoi 2";
nsize2=b;
}
/////////////////////////
void CBTL::nhap()
{
cout<<"ban hay nhap vao chuoi1"<<'\n';
cin.get(A,n);
cin.get();
cout<<"ban hay nhap vao chuoi2"<<'\n';
cin.get(B,m);
cin.get();

}
///////////////////////////
int CBTL:: demtu()
{
int dem=0;
bool flag;
for(int i=0;i<n;i++)
{
if(A[i]!=' ')
flag=1;

else
flag=0;
}

for(int j=0;j<n;j++)
{
if(A[j]=1)
if(A[j+1]=0)
if(A[j+2]!=0)
dem=dem+1;
else
return dem;
}
return dem;
cin.get();
}
//////////////////////////////////
int CBTL::demkitu()
{
char a[n];
char kitu;
int dem=0;
cout<<"nhap vao ki tu can dem"<<'\n';
cout<<"kitu=";
cin>>kitu;
kitu='a';
for(int i=0;i<si;i++)
{
if(a[i]='a')
dem=dem+1;
else

if(a[i]!='a')
return dem;
}
return dem;
cin.get();
}
//////////////////////////////////
void CBTL::loaichuoi()
{
char *chuoi1;
char *chuoi2;
int p,e;
char*pc;
pc=chuoi1+p;
for(int i=0;i<e;i++)
{
*chuoi2=*pc;
chuoi1=chuoi1+1;
pc=pc+1;
}
cin.get();
}
///////////////////////////////////
void CBTL::congchuoi()
{
char * strcat (char*chuoi1,const char*chuoi2);
}
///////////////////////////////////
void CBTL::docdulieu()
{
// chuoi vao file
ofstream chuoi;
}
{
xaukitu.nhap();
xaukitu.demtu();
xaukitu..demkitu();
cin.get();
}

// Nếu có thể viết lại giúp mình với nhé.

kimduquan
21-04-2009, 17:32
trời 2 hàm khởi tạo là 2 hàm khởi tạo có tham số và ko tham số đó chứ hàm khởi tạo chuỗi kí tự mà truyền float b vào làm gì?hàm demtu,demkitu,loaichuoi cần coi lại,hàm congchuoi chi cần truyền 1 tham số.