CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

关于ANSISTRING 和char[]之间的转换。

楼主CPerlAsm_Lx(一叶知秋)2003-11-03 08:06:22 在 C++ Builder / 基础类 提问

char     strSrc[]="c:\\a\\*.txt\0";  
  //这个是一个函数里要用到的参数,后面还有个\0  
  我用Edit1->Text.c_str();   怎么转换不过去呢。  
  (Edit1->Text+"\0").c_str();也转换不过去。  
   
  怎么转换呢。  
  问题点数:20、回复次数:8Top

1 楼Yans(跟贴是一种友谊)回复于 2003-11-03 08:33:25 得分 1

不知道你要怎么转换?是不是转换成AnsiString  
  如果是:  
  AnsiString   dd=strSrc;应该可以!\0是字符串结束标志。  
  Top

2 楼52vc(方旭)回复于 2003-11-03 08:42:22 得分 1

AnsiString(Edit1->Text);Top

3 楼CPerlAsm_Lx(一叶知秋)回复于 2003-11-03 11:29:25 得分 0

相反。  
  我想做的是把EDIT里的东西喜欢换成CHAR[],但是这个CHAR[]要求带一个   \0  
   
  老是转换失败。我给大家把代码铁上来  
   
            int   nOk;  
    //       char     strSrc[]="c:\\a\\*.txt\0";  
            //可以改变源路径  
    //         char     strDst[]="c:\\b\0";  
            //设置目的路径  
            char     strTitle[]="File   copying";  
            //进度题头  
            SHFILEOPSTRUCT   FileOp;  
            FileOp.hwnd=Handle;  
            FileOp.wFunc=FO_COPY;  
            //执行文件拷贝  
            FileOp.pFrom=   Edit1->Text.c_str()   ;  
            FileOp.pTo=   Edit2->Text.c_str();  
            FileOp.fFlags=FOF_ALLOWUNDO;  
            FileOp.hNameMappings=NULL;  
            FileOp.lpszProgressTitle=strTitle;  
   
                          nOk=SHFileOperation(&FileOp);  
                if(nOk)  
                        ShowMessage("There   is   an   error:   %d\n");  
                else  
                      ShowMessage("SHFileOperationfinished   successfully\n");  
   
                  if(FileOp.fAnyOperationsAborted)  
                        ShowMessage("Operation   was   aborted!\n");  
   
  //也就说原来用注释掉的那个CHAR[]是可以的。可是我想从EDIT里读取信息给程序啊。但是EDIT里的ANSISTRING转换成CHAR[]以后。程序说找不到什么什么盘。。。Top

4 楼woxihuanbohe(我喜欢)回复于 2003-11-03 11:41:43 得分 1

AnsiString   Test   =   "c:\\a\\*.txt";    
          char   *cp   =   Test.c_str();    
  Top

5 楼yjy1001(蓝鲸--优秀得郁闷的鱼)回复于 2003-11-03 13:12:45 得分 1

char   *ch   =   Test.c_str();    
  唉    
      char   *   to   AnsiString  
   
  char   *   ch;  
  AnsiString   str;  
  str=StrPas(ch);  
   
  AnsiString   to   char   *  
  char   *   ch;  
  AnsiString   str;  
  ch=str.c_str();  
   
  /0     是字符串的结束符号。  
  你可以这样赋值进去  
  CHAR[0]="c";  
  CHAR[1]=":";  
  CHAR[2]="\";  
  CHAR[3]="\";  
  CHAR[4]="a";  
  CHAR[5]="\";  
  CHAR[6]="\";  
  CHAR[7]="*";  
  CHAR[8]=".";  
  CHAR[9]="t";  
  CHAR[10]="x";  
  CHAR[11]="t";  
  CHAR[0]=0;//       “/0”==NULL=0(AscII   码值)  
   
   
  Top

6 楼pp616(坏蛋)回复于 2003-11-04 14:17:11 得分 8

AnsiString   str="hello";  
  char   *buf;  
  buf=(char   *)malloc(str.Length()+1);  
  memset(buf,0x00,str.Length()+1);  
  strcpy(buf,str.c_str());  
  Top

7 楼zcchm(lone wolf)回复于 2003-11-04 14:38:31 得分 2

“char   *ch   =   Test.c_str();   ”  
  这段代码是非常错误的!  
  参考下面帮助  
   
  Returns   the   AnsiString   converted   to   null-terminated   character   array.  
   
  char*   __fastcall   c_str()   const;  
   
  Description  
   
  c_str   returns   a   pointer   a   null-terminated   character   array   containing   the   same   characters   as   the   AnsiString.   If   the   AnsiString   is   unassigned,   c_str   returns   an   empty   string   (摂).  
   
  Usually,   the   value   returned   by   c_str   points   to   the   internal   character   array   referenced   by   the   data   property.   This   pointer   is   valid   until   the   string   is   next   modified   (for   example   when   the   SetLength   method   is   called   or   the   AnsiString   goes   out   of   scope).   However,   if   the   internal   array   is   NULL,   c_str   returns   a   pointer   to   a   string   literal.    
   
  The   c_str   method   is   intended   primarily   for   reading   the   value   of   the   AnsiString.   To   modify   the   string抯   value,   use   the   []   operator   or   AnsiString   methods   such   as   Insert   and   Delete.Top

8 楼spotless(spotless)回复于 2003-11-04 16:30:36 得分 6

char   *strSrc;  
  strSrc=new   char[Edit1->text.Length()+1];  
  strcpy(strSrc,Edit1->text.c_str());  
  strSrc[Edit1->text.Length()]='\0';Top

相关问题

  • char*如何转换成AnsiString
  • 请问:char*与AnsiString之间如何转换?
  • 一个很菜的问题,如何在AnsiString和Char之间互相转换?
  • 请教:Ansistring与unsigned char转换
  • 如何将 char* 型转换为 AnsiString ?
  • unsigned char* 转换AnsiString怎么转?
  • 小问题.char[] 如何转换成AnsiString?
  • char a[10]; char * a; string a; AnsiString a; 区别是什么 怎么互相转换
  • 各位大虾:怎样将AnsiString 类型转换成char *
  • 各位高手、、unsigned char转换到AnsiString?谢谢

关键词

  • 转换
  • null
  • ansistring
  • fileop
  • strsrc
  • edit
  • nok
  • str
  • showmessage
  • ch

得分解答快速导航

  • 帖主:CPerlAsm_Lx
  • Yans
  • 52vc
  • woxihuanbohe
  • yjy1001
  • pp616
  • zcchm
  • spotless

相关链接

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

广告也精彩

反馈

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