如何将一个AnsiString类型的变量塞入Char[]中呢?

vc_hking 2003-06-29 04:01:19
如题!
...全文
51 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
hitbabiq 2003-07-02
  • 打赏
  • 举报
回复
用strcpy( ,);
vc_hking 2003-07-02
  • 打赏
  • 举报
回复
strcpy(buf,str.c_str()); is ok!
s98231106 2003-06-30
  • 打赏
  • 举报
回复
String str = "mystr";
char ch[20];
strncpy(ch,str.c_str(),19);
binbin 2003-06-29
  • 打赏
  • 举报
回复
用strcpy的方法是对的,直接指针赋值的方法是错误的.
这个问题讨论过多次了.
c_str()返回的是AnsiString内部保存数据的指针,可能会随着内存的动态分配而改变,所以是不可靠的,必须用strcpy将内容复制出来,不然程序运行到某处后会发现字符串无效了又找不出原因,很多初学者会抱怨是CB的bug.
  • 打赏
  • 举报
回复
String str = "mystr";
char ch[20];
如何将str付给ch?
..
或许你的字符串不要定义这么大,要根据字符串的需要动态定义
char *ch=new char[str.Getlength()+1];
strcpy(ch,str);
ThinkX 2003-06-29
  • 打赏
  • 举报
回复
xrfei(相如飞) 的做法是错误的,明显内存漏洞。
teatool(美貌与智慧并重,英雄与侠仪的化身)的做法是对的,但是一定注意在使用strcpy或者其他字符串复制函数时不要越界。
MikeWKL 2003-06-29
  • 打赏
  • 举报
回复
str.c_str()是可以的。
teatool 2003-06-29
  • 打赏
  • 举报
回复
String str = "mystr";
char ch[20];
strncpy(ch,str.c_str(),19);
pp616 2003-06-29
  • 打赏
  • 举报
回复
AnsiString str="....";
使用char[]这里有点问题。你不知道你的str的长度。所以我建议用char *
char *buf;
buf=(char *)malloc(str.Length()+1);为buf分配内存空间。要+1 最后一个放字符串结束符号'\0'
memset(buf,0x00,str.Length()+1);初始化内存
然后用strcpy函数将str内存转化到buf中
strcpy(buf,str.c_str());

xrfei 2003-06-29
  • 打赏
  • 举报
回复
To:nanhui(晖)
不用这么麻烦的,可以一次性赋值,试试就知道了。
nanhui 2003-06-29
  • 打赏
  • 举报
回复
各位:楼主说的好像是AnsiString转化为Char[]
AnsiString str = "aaaa";
char chr[20];
chr = str.c_str(); //这是有问题的
据我所知,好像只能一个一个字符地往数组里面插入
void TForm1::StrToChar(AnsiString wstr,char chr[])
{
char *cha;
AnsiString str=AnsiString(wstr);
cha=str.c_str();
for(int i=0;i<wstr.Length();i++)
chr[i]=*(cha+i);
}
nuaacims 2003-06-29
  • 打赏
  • 举报
回复
呵呵 是啊...
AnsiString -->char* 用.c_str()
char*->AnsiString (AnsiString)char;强制转换就行了
xrfei 2003-06-29
  • 打赏
  • 举报
回复
你注意这句:
str.c_str(),其中 .c_str()的作用就是将String型的数据转换成char*型的数据。
vc_hking 2003-06-29
  • 打赏
  • 举报
回复
String str = "mystr";
char ch[20];
如何将str付给ch?
xrfei 2003-06-29
  • 打赏
  • 举报
回复
String str="mystr";
char * mychar=new char[10];
mychar=str.c_str();

13,873

社区成员

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

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