新微赢技术网
标题:
c++中用strcpy和strcat报错
[打印本页]
作者:
√金刚石猛男
时间:
2009-11-4 01:54
标题:
c++中用strcpy和strcat报错
俺是新手,菜鸟一个,刚学C++,
刚编了个字符相加的程序,功能是,将两个字符相加,例如:输入hello,和world两个字符,便输出helloworld
可是总是出错,用strcpy,和strcat函数时,也报错;
最后,编译时没错,可是运行不了,着实郁闷,望哪位高手,帮忙写个程序,让俺看看
谢谢了先!
作者:
黒設會
时间:
2009-11-4 01:54
Example
/* STRCPY.C: This program uses strcpy
* and strcat to build a phrase.
*/
#include <string.h>
#include <stdio.h>
void main( void )
{
char string[80];
strcpy( string, "Hello world from " );
strcat( string, "strcpy " );
strcat( string, "and " );
strcat( string, "strcat!" );
printf( "String = %s\n", string );
}
Output
String = Hello world from strcpy and strcat!
作者:
帅精灵
时间:
2009-11-4 01:54
新手,以前不知道怎么找到自己发的东西,现在才 知道了,故而特地回来感谢下
谢谢!!!
作者:
ξǒひ糀無蒛
时间:
2009-11-4 01:55
#include <iostream>
#include <string>
using namespace std;
void main ()
{
char char1[15];
char char2[15];
cout << "Enter the first Character string:";
cin >> char1;
cout << "Enter the second Character string:";
cin >> char2;
int len = strlen ( char1 ) + strlen ( char2 );
char *char3 = new char[len + 1];
strcpy ( char3, char1 );
strcat ( char3, char2 );
cout << "New Character string After Merge:" << char3;
}
作者:
秋燕子_児
时间:
2009-11-4 01:55
谢谢了先!!!
作者:
逍遥的雨夜
时间:
2009-11-4 01:55
那顺便帮我看看下面的程序怎么总是出错:
#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;
}
拜托了!!!!!
作者:
蓝血腥人
时间:
2009-11-4 01:55
应该是使用字符串数组吧,资源分配方面有问题~~~~
建议使用string,而不是char*:
#include <iostream>
#include <string>
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;
}
作者:
爱琴海
时间:
2009-11-4 01:55
总之,先谢谢了!
作者:
不材之木
时间:
2009-11-4 01:55
哇嘶!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;
}
作者:
皇家㊣贺v
时间:
2009-11-4 01:55
你把using namespace std;给屏蔽了,不错才怪呢!!!!!!!!!!!!!!!!!!
欢迎光临 新微赢技术网 (http://bbs.weiying.cn/)
Powered by Discuz! X3.2