关于ANSISTRING 和char[]之间的转换。
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?谢谢




