俺是新手,菜鸟一个,刚学C++,
刚编了个字符相加的程序,功能是,将两个字符相加,例如:输入hello,和world两个字符,便输出helloworld
可是总是出错,用strcpy,和strcat函数时,也报错;
最后,编译时没错,可是运行不了,着实郁闷,望哪位高手,帮忙写个程序,让俺看看
谢谢了先!
那顺便帮我看看下面的程序怎么总是出错:
#include <iostream.h>
#include <string.h>
class zf
{
char * str;
public:
void input()
{
cout<<"输入字符:"<<endl;
cin>>str;
}
void print()
{
cout<<str<<endl;
}
~zf()
{
delete str;
}
friend zf operator + (zf &a,zf &b);
};
zf operator + (zf &a,zf &b)
{
zf temp;
delete temp.str;
temp.str=new char [strlen(a.str)+strlen(b.str)+1];
strcpy(temp.str,a.str);
strcat(temp.str,b.str);
return temp;
}
main()
{
zf a ,b,c;
a.input();
b.input();
c=b+a;
c.print();
return 0;
}
拜托了!!!!!
哇嘶!7楼的你好厉害,真的可以了,
可是我经过以下变化就错了好多错误,拜托帮我解释:
#include <iostream.h> // 这里改变了
#include <string.h>
//using namespace std;
class MyClass{
string str;
public:
MyClass(){}
MyClass(const string& str_):str(str_){}
void input(){
cout<<"please input a string: ";
cin>>str;
}
void print() const{
cout<<"The result: ";
cout<<str<<endl;
}
friend MyClass operator+(const MyClass &a,const MyClass &b){
return MyClass(a.str+' '+b.str);
}
~MyClass(){}
};
int main(){
MyClass a,b,c;
a.input();
b.input();
c=a+b;
c.print();
return 0;
}