CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

C++Builder如何将Char* 和String 类型互相转换?

楼主wuxking(sailing)2003-08-01 17:55:41 在 C++ Builder / 基础类 提问

如何将Char*   和String   类型互相转换?  
  将Char*   转换为String;  
  将String转换为Char   *;?  
  能否做到,具体如何操作?谢谢! 问题点数:80、回复次数:14Top

1 楼annkie(无声的雨)回复于 2003-08-01 18:07:10 得分 5

char*   =>   String:   String(p)  
  String   =>   char*:   s.c_str();Top

2 楼Icat(晨)回复于 2003-08-01 18:11:34 得分 4

1,AnsiStrong的构造函数  
  __fastcall   AnsiString(const   char*   src);  
  2,我只知道如何转为const   char*  
  然后再赋值  
  --这样只是值一样而已  
  Top

3 楼Icat(晨)回复于 2003-08-01 18:14:06 得分 4

to,annkie(无声的雨)  
  s.c_str();  
  这是const   char*  
  不能修改的,  
  可能满足不了他的要求,  
  有其他办法么?Top

4 楼annkie(无声的雨)回复于 2003-08-01 18:17:13 得分 3

应该可以满足楼主的要求,你可以使用const_cast转换一下。Top

5 楼yangguo_god(狂学java....)回复于 2003-08-01 18:28:09 得分 2

String   str;  
  char   *ch;  
  str="str";  
  ch   =   str.c_str();//string->char  
  str   =   ch;   //char->stringTop

6 楼mme(dog)回复于 2003-08-03 18:56:16 得分 5

不,我劝你不要直接对String里面的c_str()指针操作  
   
  像  
  String   str;  
  char   *ch;  
  str="str";  
  ch   =   str.c_str();//string->char  
  str   =   ch;   //char->string  
   
  这样的话,你现在对ch进行操作,很有可能会出现莫名其妙的问题.  
   
  比如,字符发生错误等等.  
   
  所以建议你把String的数据copy出来操作.  
   
  其实String就是AnsiStringTop

7 楼GeoPhoenix(天鸽)回复于 2003-08-03 19:46:15 得分 3

俺从来就没用过   String这种类型,如果像楼上所说的String类型就是AnsiString类型的话,那就好办了,举例如下:  
  AnsiString   str;  
  char   s[100];  
   
  str   =   AnsiString("sdfgdsfgdf");  
  //AnsiString   到   char  
  strcpy(s,str.c_str());  
  //char   到   AnsiString  
  strcpy(s,"dsfgddsfgdf");  
  str   =   AnsiString(s);  
   
  //OK  
   
   
  Top

8 楼pepsi1980(这只老鼠不会游泳)回复于 2003-08-03 20:13:41 得分 2

哈哈,楼主是不是从VC转到BC来哦  
  前天我搞VC,发现Char*   和String   类型互相转换需要这样:  
  CString   ..;  
  ...Format("/d",..)  
  麻烦的很~~~Top

9 楼hong668(心情不错)回复于 2003-08-03 20:20:40 得分 1

string=string(char*)  
  char   *=string.c_str()Top

10 楼TR@SOE()回复于 2003-08-03 20:45:30 得分 30

1、char   *   ->   String  
  char   *cp="123456";  
  String   str=StrPas(cp);  
   
  2、String   ->   char   *  
  最稳妥,最标准的做法:  
  String   str="123456";  
  int   len=str.Length();  
   
  char   *cp=new   char[len+1];  
  StrPCopy(cp,   str);  
   
  千万不要用  
  cp=str.c_str()的方法,很不可靠。Top

11 楼nuaacims(沉底鱼)回复于 2003-08-03 22:27:51 得分 0

“cp=str.c_str()的方法,很不可靠”  
  这个我真的不了解   而且一直这么用  
  可以大概讲一下   为什么嘛?Top

12 楼weixing979(★★★闪电侠★★★)回复于 2003-08-03 23:04:04 得分 3

我一直用  
  StrPas  
    和   .c_str()Top

13 楼Santos(快乐的GG)回复于 2003-08-03 23:12:42 得分 3

String   youString;  
  char*     youCharP;  
   
  youString   =   "Hello,   this   is   a   demo   string.";  
  youCharP     =   youString.c_str();  
  youString   =   AnsiString(youCharP);  
   
  Top

14 楼wuxsun(shine)回复于 2003-08-16 12:46:06 得分 15

String   to   Char   *  
     
    String   Strs;  
    char   *   aa=new   char[Strs.Length()+1];  
    StrPCopy(aa,Strs);  
   
  Top

相关问题

  • C++BUILDER 中CHAR ,STRING ,ANSISTRING,WIDESTRING 4 种类型怎样转换?
  • c#中string[] 转化成char*
  • c++ builder的string操作
  • s:string; c:char; 如果s:='abcd',怎样令c等于s的第3个字符,即'c'
  • C++Builder 6 有没有string类啊?
  • C++Builder
  • C++? VC++? C++ Builder?
  • string => char ...........
  • char[] to string
  • C#怎么样把一个String类型转换成Char类型????????????????????

关键词

  • 转换
  • youstring
  • ansistring
  • youcharp
  • 类型
  • strs
  • cp
  • ch
  • char
  • const

得分解答快速导航

  • 帖主:wuxking
  • annkie
  • Icat
  • Icat
  • annkie
  • yangguo_god
  • mme
  • GeoPhoenix
  • pepsi1980
  • hong668
  • TR@SOE
  • weixing979
  • Santos
  • wuxsun

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo