Just create a class that carries that info in a variable, and then return a variable of that type. I don't know if this is exactly what you want, but here's an example:
Code:
#include<iostream.h>
#include<conio.h>
#include<string.h>
class str
{
char temp[1024];
int len;
public:
str(char a[]="")
{
strcpy(temp,a);
len=strlen(temp);
}
str operator+(str s1)
{
char b[1024];
strcpy(b,temp);
b[len]='\0';
strcat(b,s1);
str retval(b);
return retval;
}
operator char*()
{
char retval[1024];
strcpy(retval,temp);
retval[len]='\0';
return retval;
}
void display()
{
cout<<temp;
}
void addspace()
{
temp[len]=' ';
len++;
temp[len]='\0';
}
int operator==(str s1);
char* strreverse();
};
char* str::strreverse()
{
char n[1024];
int cpos=len-1;
int npos=0;
for( ; cpos>=0 ; cpos--)
{
n[npos]=temp[cpos];
npos++;
}
n[npos]='\0';
str retval(n);
return retval;
}
int str::operator==(str s1)
{
int eq=0;
int slen=strlen(s1);
if (len>slen)
{
int t=0;
t=slen;
slen=len;
len=t;
}
if (len==slen)
{
eq=1;
slen--;
for ( ; slen>=0 ; slen--)
{
if (s1[slen]!=temp[slen])
{
eq=0;
break;
}
}
}
return eq;
}