将Char* 转换为String;
将String转换为Char *;?
能否做到,具体如何操作?谢谢!
14 个解决方案
#1
char* => String: String(p)
String => char*: s.c_str();
String => char*: s.c_str();
#2
1,AnsiStrong的构造函数
__fastcall AnsiString(const char* src);
2,我只知道如何转为const char*
然后再赋值
--这样只是值一样而已
__fastcall AnsiString(const char* src);
2,我只知道如何转为const char*
然后再赋值
--这样只是值一样而已
#3
to,annkie(无声的雨)
s.c_str();
这是const char*
不能修改的,
可能满足不了他的要求,
有其他办法么?
s.c_str();
这是const char*
不能修改的,
可能满足不了他的要求,
有其他办法么?
#4
应该可以满足楼主的要求,你可以使用const_cast转换一下。
#5
String str;
char *ch;
str="str";
ch = str.c_str();//string->char
str = ch; //char->string
char *ch;
str="str";
ch = str.c_str();//string->char
str = ch; //char->string
#6
不,我劝你不要直接对String里面的c_str()指针操作
像
String str;
char *ch;
str="str";
ch = str.c_str();//string->char
str = ch; //char->string
这样的话,你现在对ch进行操作,很有可能会出现莫名其妙的问题.
比如,字符发生错误等等.
所以建议你把String的数据copy出来操作.
其实String就是AnsiString
像
String str;
char *ch;
str="str";
ch = str.c_str();//string->char
str = ch; //char->string
这样的话,你现在对ch进行操作,很有可能会出现莫名其妙的问题.
比如,字符发生错误等等.
所以建议你把String的数据copy出来操作.
其实String就是AnsiString
#7
俺从来就没用过 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
AnsiString str;
char s[100];
str = AnsiString("sdfgdsfgdf");
//AnsiString 到 char
strcpy(s,str.c_str());
//char 到 AnsiString
strcpy(s,"dsfgddsfgdf");
str = AnsiString(s);
//OK
#8
哈哈,楼主是不是从VC转到BC来哦
前天我搞VC,发现Char* 和String 类型互相转换需要这样:
CString ..;
...Format("/d",..)
麻烦的很~~~
前天我搞VC,发现Char* 和String 类型互相转换需要这样:
CString ..;
...Format("/d",..)
麻烦的很~~~
#9
string=string(char*)
char *=string.c_str()
char *=string.c_str()
#10
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()的方法,很不可靠。
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()的方法,很不可靠。
#11
“cp=str.c_str()的方法,很不可靠”
这个我真的不了解 而且一直这么用
可以大概讲一下 为什么嘛?
这个我真的不了解 而且一直这么用
可以大概讲一下 为什么嘛?
#12
我一直用
StrPas
和 .c_str()
StrPas
和 .c_str()
#13
String youString;
char* youCharP;
youString = "Hello, this is a demo string.";
youCharP = youString.c_str();
youString = AnsiString(youCharP);
char* youCharP;
youString = "Hello, this is a demo string.";
youCharP = youString.c_str();
youString = AnsiString(youCharP);
#14
String to Char *
String Strs;
char * aa=new char[Strs.Length()+1];
StrPCopy(aa,Strs);
String Strs;
char * aa=new char[Strs.Length()+1];
StrPCopy(aa,Strs);
#1
char* => String: String(p)
String => char*: s.c_str();
String => char*: s.c_str();
#2
1,AnsiStrong的构造函数
__fastcall AnsiString(const char* src);
2,我只知道如何转为const char*
然后再赋值
--这样只是值一样而已
__fastcall AnsiString(const char* src);
2,我只知道如何转为const char*
然后再赋值
--这样只是值一样而已
#3
to,annkie(无声的雨)
s.c_str();
这是const char*
不能修改的,
可能满足不了他的要求,
有其他办法么?
s.c_str();
这是const char*
不能修改的,
可能满足不了他的要求,
有其他办法么?
#4
应该可以满足楼主的要求,你可以使用const_cast转换一下。
#5
String str;
char *ch;
str="str";
ch = str.c_str();//string->char
str = ch; //char->string
char *ch;
str="str";
ch = str.c_str();//string->char
str = ch; //char->string
#6
不,我劝你不要直接对String里面的c_str()指针操作
像
String str;
char *ch;
str="str";
ch = str.c_str();//string->char
str = ch; //char->string
这样的话,你现在对ch进行操作,很有可能会出现莫名其妙的问题.
比如,字符发生错误等等.
所以建议你把String的数据copy出来操作.
其实String就是AnsiString
像
String str;
char *ch;
str="str";
ch = str.c_str();//string->char
str = ch; //char->string
这样的话,你现在对ch进行操作,很有可能会出现莫名其妙的问题.
比如,字符发生错误等等.
所以建议你把String的数据copy出来操作.
其实String就是AnsiString
#7
俺从来就没用过 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
AnsiString str;
char s[100];
str = AnsiString("sdfgdsfgdf");
//AnsiString 到 char
strcpy(s,str.c_str());
//char 到 AnsiString
strcpy(s,"dsfgddsfgdf");
str = AnsiString(s);
//OK
#8
哈哈,楼主是不是从VC转到BC来哦
前天我搞VC,发现Char* 和String 类型互相转换需要这样:
CString ..;
...Format("/d",..)
麻烦的很~~~
前天我搞VC,发现Char* 和String 类型互相转换需要这样:
CString ..;
...Format("/d",..)
麻烦的很~~~
#9
string=string(char*)
char *=string.c_str()
char *=string.c_str()
#10
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()的方法,很不可靠。
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()的方法,很不可靠。
#11
“cp=str.c_str()的方法,很不可靠”
这个我真的不了解 而且一直这么用
可以大概讲一下 为什么嘛?
这个我真的不了解 而且一直这么用
可以大概讲一下 为什么嘛?
#12
我一直用
StrPas
和 .c_str()
StrPas
和 .c_str()
#13
String youString;
char* youCharP;
youString = "Hello, this is a demo string.";
youCharP = youString.c_str();
youString = AnsiString(youCharP);
char* youCharP;
youString = "Hello, this is a demo string.";
youCharP = youString.c_str();
youString = AnsiString(youCharP);
#14
String to Char *
String Strs;
char * aa=new char[Strs.Length()+1];
StrPCopy(aa,Strs);
String Strs;
char * aa=new char[Strs.Length()+1];
StrPCopy(aa,Strs);