定义字符串类String,重载运算符=、+=、-=、==和!=,并在主函数中检查运算符的正确性。

2025-03-21 17:03:51
推荐回答(2个)
回答(1):

+= 和 -= 操作符没有对自己定义的 String 类型重载。

String & operator+=( const String & s2 );
String & operator-=( const String & s2 );

String & String::operator+=( const String & s2 )
{
char * s = new char[ strlen( sp ) + strlen( s2.sp ) + 1 ];
strcpy( s, sp );
strcat( s, s2.sp );
delete [] sp;
sp = s;
return *this;
}

String & String::operator-=( const String & s2 )
{
char * p = strstr( sp, s2.sp );
if ( p )
{
char * s = new char[ strlen( sp ) - strlen( s2.sp ) + 1 ];
*p = '\0';
strcpy( s, sp );
p += strlen( s2.sp );
strcat( s, p );
delete sp;
sp = s;
}
return *this;
}

回答(2):

我这没有编译器
你先看下每一个错误的代号所对应的是什么样的错误
然后你逐一的去搞下提示的范围实在找不出来然后我再帮你看下