VK> Anyway I need to append a char onto the end of a string,
VK> something like this
VK> char stringvar[90];
VK> char charvar;
VK> strcat(stringvar, charvar);
I was waiting for somebody to post a C++ way, but I guess
that a C way will serve for both, since you aren't using
the String class in the first place.
1.
sprintf(stringvar + strlen(stringvar), "%c", charvar);
2.
int len = strlen(stringvar);
stringvar[len++] = charvar;
stringvar[len] = (char)'\0';
If you thought you might have need of this quite often,
you might even construct your own string class.
This example is tested in Borland C++ 3.1.
#include
#include
#include
#include
class MyStrings{
public:
MyStrings(char*);
~MyStrings();
friend ostream &operator << (ostream&, MyStrings&);
const char *operator =(char*);
const char *operator =(char);
const char *operator +(char*);
const char *operator +(char);
private:
int iLen;
char *szString;
};
MyStrings::MyStrings(char *szS = NULL)
{
szString = NULL;
iLen = 0;
if(szS && *szS)
{
szString = new char[(iLen = strlen(szS)) + 1];
sprintf(szString, "%s", szS);
}
}
MyStrings::~MyStrings(){ if(szString) delete []szString; }
ostream &operator << (ostream &O, MyStrings &clsString)
{ O << clsString.szString; return O; }
const char *MyStrings::operator=(char *szA)
{
char *temp = new char [(iLen = strlen(szA)) + 1];
sprintf(temp, "%s", szA);
if(szString) delete []szString;
szString = temp;
return szString;
}
const char *MyStrings::operator=(char cA)
{
char *temp = new char [(iLen = 1) + 1];
sprintf(temp, "%c", cA);
if(szString) delete []szString;
szString = temp;
return szString;
}
const char *MyStrings::operator+(char cA)
{
char *temp = new char [(++iLen) + 1];
sprintf(temp, "%s%c", szString, cA);
delete []szString;
szString = temp;
return szString;
}
const char *MyStrings::operator+(char *szA)
{
char *temp = new char [(iLen += strlen(szA)) + 1];
sprintf(temp, "%s%s", szString, szA);
delete []szString;
szString = temp;
return szString;
}
int main(void)
{
MyStrings Nameof("K");
cout << Nameof << endl;
Nameof + 'u';
cout << Nameof << endl;
Nameof + "rt Kuzba";
cout << Nameof << endl;
Nameof = "Kurt";
cout << "Hit a key, " << Nameof << endl;
getch();
return 0;
}
> ] Sometimes... That is all there is...........................
---
---------------
* Origin: *YOPS ]I[* 3.1 GIG * RA/FD/FE RADist * Milwaukee, WI (1:154/750)
|