首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

高手来看一下,为什么字符串不能复制了?该如何解决

2012-05-21 
高手来看一下,为什么字符串不能复制了?????#includeiostream#includestringusing namespace stdtyped

高手来看一下,为什么字符串不能复制了?????
#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};

热点排行