C++学習ログの実現文字列の加減接続
3083 ワード
: String len , String 、 。 ,s1 + s2 ;s1 - s2 s1 s2 。
: VS2012 codeblocks , codeblocks , vs2012. vs2012 。 vs2012 , , codeblocks 。 , 。
:
#include
#include
using namespace std;
/* P324 , String len ,
String 。 :
s1 + s2 ;
s1 - s2 s1 s2 ;
*/
class String
{
public:
String( ); //
String(const char *s);
String(String &str); //
~String();
void display( );
String & operator = (const String & s);
friend String operator + (String &s1,String &s2 );
friend String operator - (String &s1,String &s2 );
private:
char *p;
int len; // ,
};
String::String()
{
len = 0;
p = NULL;
}
String::String(const char *s)
{
len = strlen(s);
p = new char[len+1];
strcpy(p,s);
}
String::String(String &str)
{
len = str.len;
if(p!=NULL)
delete []p; // , ,
p = new char[len+1];
strcpy(p,str.p);
}
String::~String()
{
if(!p)
delete []p;
}
String & String::operator=(const String &s)
{
if(!p)
delete [] p;
len = s.len;
p=new char[len+1];
strcpy(p,s.p);
return *this;
}
void String::display( ) // p
{
cout<=0&&c1[i]==' ') --i;
c1[i+1]='\0';
//c2
char *c2=new char[s2.len+1];
strcpy(c2,s2.p);
i=0;
while(i
: