在线等候:STL的string和AnsiString 之间如何转换?如何合并?

Pasp 2005-09-23 05:26:07
例如string a ; AnsiString b;

a=a+b;//这样报错
a=b;//这样也报错
b=a;//还是报错


如何解决?
...全文
166 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ktcserver 2005-09-23
  • 打赏
  • 举报
回复
haha,
string A2;
AnsiString A1,A2
A=A2+AnsiString(A2);
Pasp 2005-09-23
  • 打赏
  • 举报
回复
另外主要是用于网络传输,顺便问一下,声明这种网络结构是否内存安全?不会溢出?

struct mystr{
string name;
string password;
};

stl的string实际好像是指针,是否在sizeof的时候,无法确定内存大小?以至于网络传输时会出错?!!
binbin 2005-09-23
  • 打赏
  • 举报
回复
a和b是完全不同的类,只不过都封装了字符串而已,怎么可能直接相加呢?
用c字符串当桥梁,这是两个类都兼容的类型.
gxd305 2005-09-23
  • 打赏
  • 举报
回复
string的.c_str()方法
返回的是const 的
所以不能修改
而AnsiString 返回的可以修改。
所以会在
给a 赋值的时候出错
如三楼所言
a = a + b.c_str();
a = b.c_str();
b = a.c_str();

就可正常了
xibingwuqing 2005-09-23
  • 打赏
  • 举报
回复
string a ; AnsiString b;

a=a+b;
a=b;
b=a;
这段也正常...
7rainbow 2005-09-23
  • 打赏
  • 举报
回复
没有错的。
xibingwuqing 2005-09-23
  • 打赏
  • 举报
回复
这段代码本机运行正常...
7rainbow 2005-09-23
  • 打赏
  • 举报
回复
这样写
a = a + b.c_str();
a = b.c_str();
b = a.c_str();
Pasp 2005-09-23
  • 打赏
  • 举报
回复
a=b.c_str();//这样可以编译,但是运行时这行出错

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧