高手来看一下,为什么字符串不能复制了?????
#include<iostream>
#include<string>
using namespace std;
typedef int sElemType;
typedef int status;
#define ERROR 0
#define OK 1
typedef struct BiTNode
{
string data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
status CreatBiTree(BiTree &T)
{
string ch;
cin>>ch;
if(ch=="n")
T=NULL;
else
{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))
return ERROR;
strcpy(T->data,ch);
CreatBiTree(T->lchild);
CreatBiTree(T->rchild);
}
return OK;
}
void Preorder(BiTree T)
{
int i;
if(T)
{
cout<<T->data;
Preorder(T->lchild);
Preorder(T->rchild);
}
}
void main()
{
BiTree T;
CreatBiTree(T);
Preorder(T);
}
C:\Documents and Settings\Administrator\桌面\aa.cpp(23) : error C2664: 'strcpy' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'char *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
[解决办法]
string是对象。
[解决办法]
string是对象。你可以直接使用=操作符来解决。T->data=ch;就可以了
[解决办法]
string是对象。你可以直接使用=操作符来解决。T->data=ch;就可以了
[解决办法]
string data 改成char data[20]; string ch;改为:char ch[20];应该就可以了。
[解决办法]
string 直接 = 赋值
[解决办法]
strcpy(T->data,ch);
改为:
char temp = {0};
strcpy( temp , ch );
T->data = temp;
[解决办法]
写错了:char temp = {0}; -->char temp[260] = {0};