I have written a program (thanks ammar) but it is hard to understand this pointers. Can some one explain me how the pointers in this program works. Pointers make me sick it is hard to understand it and I want to understand it deeply. Thanks a lot.
----------------------------------------------------------------------------------
#include <iostream>
using namespace std;
class str
{
private:
char * st;
int len;
public:
str(char *ch);
void display(void);
int length(void);
str reverse(void);
str(const char * &);
str concat(str);
~str();
};
//-------------------------------------------------------
str::str(char *ch)
{
for (int i=0;ch[i]!='\0';i++);
st=new char (i);
int k=0;
while(ch[k]!='\0'){
k++;
}
len=k;
for (int j=0;j<len;j++)
{
st[j]=ch[j];
}
st[j]='\0';
}
str str::concat(str a){
char temp[1000];
strcpy(temp,st);
free(st);
st = strlen(a.st)+strlen(temp)+1;
for (int j=0;j=strlen(temp);j++)
{
st[j]=temp[j];
}
for (int i=0;i<strlen(a.st);i++)
{
st[i]=a.st[i];
}
// or we can use strcat(st,a);
return *a,
}
//--------------------------------------
str::~str(){
delete[] st;
}
// --------------------------------------
str::str(const char * & inobj){
for (int i=0;inobj[i]!='\0';i++);
st=new char (i);
int k=0;
while(inobj[k]!='\0'){
k++;
}
len=k;
for (int j=0;j<len;j++)
{
st[j]=inobj[j];
}
st[j]='\0';
}
//--------------------------------------------------------
void str::display(void)
{
int i=0;
while(st[i]!='\0')
{
cout<<st[i];
i++;
}
cout<<endl;
}
//---------------------------------------------------------
int str::length(void)
{
return len;
}
//---------------------------------------------------------
str str::reverse(void)
{
str rst;
for(int i=0;i<len;i++);
rst.st =new char (i);
for (int j=(len-1);j>=0;j--)
{
rst.st[len-1-j]=st[j];
}
rst.st[len]='\0';
return rst;
}
//---------------------------------------------------------
int main()
{
str string1("cse");
string1.display();
str string2=string1.reverse();
string2.display();
str string3=string1.concat(string2);
return 0;
}



LinkBack URL
About LinkBacks


